代码返回了错误的变量

本文关键字:变量 错误 返回 代码 | 更新日期: 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参数。它总是零,所以你得到的是第一个参数。

我也避免使用ToStringParse。如果您的存储过程返回一个数字,您可以简单地执行(int)cmd.Parameters["@rez"].ValueConvert.ToInt32