none
請問..預存程序無法取得out參數 RRS feed

  • 問題

  • 小弟c#程式如下

    string st1 = new string[2] { "@t1", "@t2" };
    string st2 = new string[2] { "aa","bb" };
    
    SqlCommand command = new SqlCommand(SPName, cn);
            command.CommandType = CommandType.StoredProcedure;
            SqlParameter Parameter = new SqlParameter("@outValueName", "1");
            Parameter.Direction = ParameterDirection.InputOutput;
            for (int i = 0; i < st1.Length; i++)
            {
              command.Parameters.AddWithValue(st1[i], st2[i]);
            }
            command.Parameters.Add(Parameter);
            SqlDataReader rs = command.ExecuteReader();
            strout= command.Parameters["@outValueName"].Value.ToString();
            rs.Close();
    
    
    <br/>
    

    當call的預存程序傳入"@t1", "@t2"時讓預存程序去select我要的參數.....就取不到值

    可是對該預存程序用 exec 預存程序名稱 t1,t2,''

    就可以正確取得數值(這樣代表預存也沒寫錯) 

     

    可是我這段程式call另外一個不用傳參數進去的就可以正確取到out的值...

    用以上方式傳遞數值給預存程序是錯誤的嗎?@@

     

     

     

     

    2010年8月13日 上午 04:46

所有回覆