當我試圖在我的應用程序來執行以下非查詢的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
正確返回其被接受爲@RateID
的Value
的整數值參數,但是當我在SqlCommand
上執行非查詢時,出現上述錯誤。
任何幫助非常值得讚賞。
您使用的是oledb嗎? – daryal
你正在設置一個很大的'SqlCommand'對象 - 但好像你只是直接執行'sqlText' - 你似乎根本沒有使用'sqlCom'對象..... –
It如果你能顯示*你在哪裏得到例外,那麼這真的會有幫助... –