You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OleDb执行SQL查询时遇OleDbException错误求助

问题解决:OleDbException "No value given for one or more required parameters."

错误原因

你当前通过字符串拼接生成SQL语句的写法存在两个核心问题:

  1. 存在严重的SQL注入风险,若receivedMessage包含特殊字符(比如单引号)会直接破坏SQL语法;
  2. OleDb解析拼接后的SQL时,可能将未正确识别的内容判定为未赋值的参数,触发该错误——哪怕当前receivedMessage是"admin",这种写法本身就不稳定。

修复方案:使用参数化查询

改用参数化查询是解决这类问题的标准做法,同时能彻底避免SQL注入风险:

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connection;
connection.Open(); 
// 使用?作为参数占位符(OleDb按顺序匹配参数,无需命名)
cmd.CommandText = "SELECT [Username] from [TbLeaderBoard] WHERE [Title] = ?";
// 添加参数值,类型会自动匹配
cmd.Parameters.AddWithValue("@Title", receivedMessage);

OleDbDataReader reader = cmd.ExecuteReader();

额外检查项

如果修改后仍报错,请确认:

  • 数据库表TbLeaderBoard中确实存在Title字段,字段名拼写完全一致(部分数据库对大小写敏感);
  • 当前数据库连接字符串指向的是正确的数据库实例。

内容的提问来源于stack exchange,提问作者Kieran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:32:03