使用 C# 对 MySQL 进行参数化查询
此问题解决了在 C# 中使用 MySQL 参数化查询时遇到的常见问题。提供的代码包含引发问题的代码的相关部分。
问题:
代码片段包含带有两个问号 (?) 的参数化查询,如下所示参数值的占位符。但是,用户在添加第一个参数时会遇到 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中文网其他相关文章!