当我尝试在我的应用程序中执行以下非查询 sql 命令时,我总是收到错误消息 -
必须声明标量变量“@RateID”
我有点不知所措,为什么我会收到这个错误。这是我的代码:
string sqlText = "INSERT INTO tblRates (RateID, IPName, RateName, Rate, DateFrom, DateTo, Active) " +
"VALUES (@RateID, @IPName, @RateName, @Rate, @DateFrom, @DateTo, @Active);";
SqlCommand sqlCom = new SqlCommand(sqlText);
sqlCom.Parameters.Add("@RateID", SqlDbType.Int);
sqlCom.Parameters.Add("@IPName", SqlDbType.Text);
sqlCom.Parameters.Add("@RateName", SqlDbType.Text);
sqlCom.Parameters.Add("@Rate", SqlDbType.Decimal);
sqlCom.Parameters.Add("@DateFrom", SqlDbType.Date);
sqlCom.Parameters.Add("@DateTo", SqlDbType.Date);
sqlCom.Parameters.Add("@Active", SqlDbType.Bit);
this._rateID = NextID();
sqlCom.Parameters["@RateID"].Value = this._rateID;
if (this._ipName == "All")
{
sqlCom.Parameters["@IPName"].Value = DBNull.Value;
}
else
{
sqlCom.Parameters["@IPName"].Value = this._ipName;
}
sqlCom.Parameters["@RateName"].Value = this._rateName;
sqlCom.Parameters["@Rate"].Value = this._rate;
sqlCom.Parameters["@DateFrom"].Value = this._dateFrom;
sqlCom.Parameters["@DateTo"].Value = this._dateTo;
this._active = true;
sqlCom.Parameters["@Active"].Value = this._active;
cSqlQuery cQ = new cSqlQuery(sqlText, "non query");
当我逐行执行时,我看到参数@RateID
已成功添加到sqlCommand
对象中,该方法NextID
正确返回了一个整数值,该整数值被接受为参数的值Value
,@RateID
但是当我对它执行非查询时,SqlCommand
我得到了上述错误。
非常感谢任何帮助。