首頁 > 資料庫 > mysql教程 > 如何使用 C# 解決 MySQL 參數化查詢中的 IndexOutOfBoundsException?

如何使用 C# 解決 MySQL 參數化查詢中的 IndexOutOfBoundsException?

DDD
發布: 2024-12-22 02:25:14
原創
777 人瀏覽過

How to Resolve IndexOutOfBoundsException in MySQL Parameterized Queries with C#?

使用C# 在MySQL 中進行參數化查詢:解決IndexOutOfBoundsException

使用C# 在MySQL 中處理參數化查詢時,確保參數名稱和值的正確性非常性重要避免異常。在這種情況下,新增第一個參數時會遇到 IndexOutOfBoundsException。

要解決此問題,請驗證查詢字串中的參數名稱與新增至 MySqlCommand 物件的參數是否相符。此外,請考慮以下事項:

參數名稱不符

在提供的程式碼中:

private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = ? AND VAL_@ = ?;";
登入後複製

您錯誤地使用了?查詢字串中的佔位符,MySQL 不支援。相反,MySQL 需要命名參數,該參數應以 @ 開頭。

程式碼變更

將查詢字串替換為以下內容:

private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = @param_val_1 AND VAL_2 = @param_val_2;";
登入後複製

此外,使用AddWithValue 方法將參數加入指令物件:

m.Parameters.AddWithValue("@param_val_1", val1);
m.Parameters.AddWithValue("@param_val_2", val2);
登入後複製

這確保參數名稱與中的佔位符符合查詢字串。

傳回值

在修改後的程式碼中,使用 ExecuteScalar 而不是 ExecuteReader 來擷取等級值。這是因為查詢傳回單一值(層級),因此使用 ExecuteScalar 效率更高。

透過進行這些更改,您應該能夠執行參數化查詢而不會遇到任何異常。

以上是如何使用 C# 解決 MySQL 參數化查詢中的 IndexOutOfBoundsException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板