ホームページ >データベース >mysql チュートリアル >C# で MySQL パラメータ化されたクエリが IndexOutOfBoundsException をスローするのはなぜですか?
C# での MySQL のパラメータ化されたクエリ
この質問は、C# で MySQL でパラメータ化されたクエリを使用するときに発生する一般的な問題に対処します。提供されたコードには、問題を引き起こすコードの関連部分が含まれています。
質問:
コード スニペットには、2 つの疑問符 (?) を含むパラメータ化されたクエリが含まれています。パラメータ値のプレースホルダ。ただし、最初のパラメータを追加すると、IndexOutOfBoundsException が発生します。コードの何が問題ですか?
回答:
提供されたコードはパラメータ化されたクエリで MySqlCommand オブジェクトを初期化しますが、プレースホルダーの疑問符の前に「@」が付いていません。 " 文字。MySQL の名前付きパラメータに必要です。修正されたコードは次のとおりです:
private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = @param_val_1 AND VAL_2 = @param_val_2;"; public bool read(string id) { level = -1; MySqlCommand m = new MySqlCommand(readCommand); m.Parameters.AddWithValue("@param_val_1", val1); m.Parameters.AddWithValue("@param_val_2", val2); level = Convert.ToInt32(m.ExecuteScalar()); return true; }
この修正されたコードでは:
以上がC# で MySQL パラメータ化されたクエリが IndexOutOfBoundsException をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。