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

执行查询Order表的C#代码时触发SqlException:关键字'Order'附近语法错误

解决SQL语法错误:Incorrect syntax near the keyword 'Order'

这个问题其实挺常见的——你撞到了SQL保留关键字的冲突坑!Order是SQL里的核心保留关键字(用来做ORDER BY排序操作的),当你直接写SELECT * FROM Order时,SQL解析器会把它当成排序关键字来识别,而不是你的表名,自然就抛出语法错误了。

快速修复方案

只需要给表名加上方括号[],明确告诉SQL引擎这是一个对象名(表名),而不是关键字:

List<Order> results = new List<Order>();
db.Cmd = db.Conn.CreateCommand();
// 给Order表名加上方括号,明确标识为表对象
db.Cmd.CommandText = "SELECT * FROM [Order]"; 
db.Rdr = db.Cmd.ExecuteReader();
while (db.Rdr.Read()) {
    results.Add(getOrderFromReader(db.Rdr));
}
db.Rdr.Close();
return results;

额外小建议

如果项目还处于可调整的阶段,尽量避免用SQL保留关键字作为表名、列名,这能从根源上避免这类无意义的语法冲突。但如果已经没法修改表名了,用方括号(SQL Server环境)或者反引号(MySQL环境)包裹就是标准的解决方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:00:09