SQL 查詢中出現「變數名稱'@' 已宣告」錯誤
執行SQL 查詢時,確保以下內容至關重要查詢批次或預存程序中宣告的變數名稱是唯一的。當使用帶有“@”前綴的變數替換時,經常會發生此錯誤。
錯誤原因
在提供的程式碼中,「@LockState」的第二個實例在參數集合中觸發錯誤。這是因為每個參數在同一查詢中必須具有唯一的名稱。
解決方案
要解決此錯誤,請實施以下解決方案之一:
每次循環迭代後使用rwd.command.Parameters.Clear() 刪除先前新增的參數,確保下一次迭代以新的集合開始。
for (long counter = from; counter <= to; counter++) { rwd.command.Parameters.Clear(); // ... (remaining code) }
在循環外聲明參數,在循環內賦值。這可確保參數僅定義一次。
rwd.command.Parameters.Add(new SqlParameter("@LockState", SqlDbType.NVarChar)); rwd.command.Parameters.Add(new SqlParameter("@card_descr", SqlDbType.NVarChar)); for (long counter = from; counter <= to; counter++) { // ... (remaining code) rwd.command.Parameters["@LockState"].Value = 1; rwd.command.Parameters["@card_descr"].Value = txt_desc2.Text; }
透過執行下列步驟,您可以確保查詢中的變數名稱唯一,防止出現「變數名稱 '@' 已宣告」錯誤並確保無縫執行。
以上是為什麼我在 SQL 查詢中收到「變數名稱『@』已宣告」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!