如何从C#运行具有OUTPUT参数的存储过程?

shm*_*dor 20 c#

我有一个带有输出参数的存储过程.如何使用C#代码读取此值?

Mer*_*ack 40

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

像这样的东西:

using (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();
}
Run Code Online (Sandbox Code Playgroud)

  • 我强烈建议将`SqlConnection`和`SqlCommand`放入`using(....){...}`块作为最佳实践 (6认同)