用输入和输出参数调用SP的C#方法

问题描述:

我在写C#方法来调用带参数的SP。 它有输入参数,+我添加使用cmd.Parameters.AddWithValue 但我也需要输出参数及其值...我如何添加它后,我添加了所有输入,cmd.Parameters.AddWithValue用输入和输出参数调用SP的C#方法

检查SqlParameterCollection.AddWithValue Method返回类型,它是SqlParameter你可以设置它的Direction作为ParameterDirection

var parameter = cmd.Parameters.AddWithValue(..... 

parameter.Direction = ParameterDirection.Output; 

一个我假设你使用ADO.NET?如果是这样,SqlParameter类具有属性“方向”。将方向设置为输出,并在查询执行后读取该参数的值。

事情是这样的:

SqlCommand cmd = new SqlCommand("MyStoredProcedure", cn); 
cmd.CommandType=CommandType.StoredProcedure; 
SqlParameter parm=new SqlParameter("@pkid",SqlDbType.Int); 
parm.Value=1; 
parm.Direction =ParameterDirection.Input ; 
cmd.Parameters.Add(parm); 
SqlParameter parm2=new SqlParameter("@ProductName",SqlDbType.VarChar); 
parm2.Size=50; 
parm2.Direction=ParameterDirection.Output; // This is important! 
cmd.Parameters.Add(parm2); 
cn.Open(); 
cmd.ExecuteNonQuery(); 
cn.Close(); 

// Print the output value 
Console.WriteLine(cmd.Parameters["@ProductName"].Value); 
Console.ReadLine();