如何在使用ExecuteScalar()执行SP时获取c#中的输出参数值

时间:2016-10-25 12:58:31

标签: c# .net sql-server ado.net

我正在尝试在c#中执行存储过程。

存储过程执行插入操作并返回其中一列的值作为输出参数。

我需要从c#执行它并获取输出参数的值。

以下是我到目前为止所尝试的内容。

curl_setopt($token, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 

执行上面的操作,成功执行insert,但为输出参数值返回null。

任何人都可以建议我在这里缺少的东西。

由于

1 个答案:

答案 0 :(得分:0)

在定义输出参数时尝试这样:

         associateParams[8] = new SqlParameter("@userSalt", SqlDbType.VarChar, 400);
         associateParams[8].Value = "";
         associateParams[8].Direction = ParameterDirection.Output;
         associateParams[9] = new SqlParameter("@activationKey", SqlDbType.Int);                 
         associateParams[9].Value = 0;
         associateParams[9].Direction = ParameterDirection.Output;

请告诉我这是否有帮助。

更新:这是我自己的方法

 cmd.Parameters.Add(new SqlParameter("@userSalt", SqlDbType.VarChar, 400));
 cmd.Parameters["@userSalt"].Value = "";
 cmd.Parameters["@userSalt"].Direction = ParameterDirection.Output;

UPDATE1:因为你不使用ExecuteNonQuery。将cmd.ExecuteScalar()更改为cmd.ExecuteNonQuery()