假如有如下過程:
CREATE PROCEDURE  prd_Test
@a   int OUTPUT,
@b   int  OUTPUT
AS
set @a = 454
set @b = 2121
select * from SL_Sect 
C#中為什麼用Command.ExecuteReader不能返回output參數?

解决方案 »

  1.   

    System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("连接字符串");
    System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();
    cm.Connection = cnn;
    cm.CommandText = "prd_Test";
    cm.CommandType = CommandType.StoredProcedure;cm.Parameters.Add("@a");
    cm.Parameters["@a"].Direction = System.Data.ParameterDirection.Output;
    cm.Parameters.Add("@b");
    cm.Parameters["@b"].Direction = System.Data.ParameterDirection.Output;
    cnn.Open();
    System.Data.SqlClient.SqlDataReader dr = cm.ExecuteReader();
    cnn.Close();string aaa = cm.Parameters["@a"].Value.ToString();
    string bbb = cm.Parameters["@b"].Value.ToString();
      

  2.   

    原來是cnn.Close();沒做寫才不行。