代码返回了错误的变量
本文关键字:变量 错误 返回 代码 | 更新日期: 2023-09-27 18:04:53
所以这应该返回@rez
,但它返回@idCEL
。为什么?
int rez=0;
var cmd = new SqlCommand(@"exec spUpdateCELPowerMeasurementForGeoData1
@idCEL, @rez OUT", conn);
cmd.Parameters.AddWithValue("@idCEL",idCEL).Direction=System.Data.ParameterDirection.Input;
cmd.Parameters.AddWithValue("@rez", rez).Direction=System.Data.ParameterDirection.Output;
cmd.CommandTimeout=700;
cmd.ExecuteNonQuery();
rez = int.Parse(cmd.Parameters[@rez].Value.ToString());
return rez;
在@rez
周围使用引号-它应该是一个字符串:
rez = int.Parse(cmd.Parameters["@rez"].Value.ToString());
@rez
实际上是rez
本地变量,而不是"rez"sql参数。它总是零,所以你得到的是第一个参数。
我也避免使用ToString
和Parse
。如果您的存储过程返回一个数字,您可以简单地执行(int)cmd.Parameters["@rez"].Value
或Convert.ToInt32