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

Razor Pages执行UPDATE SQL提示'Make'附近语法错误排查

问题根因

触发Incorrect syntax near 'Make'错误的核心原因是UPDATE语句字符串拼接时缺失必要的空格分隔符,和参数传值、表结构、表单取值逻辑均无关。
你当前代码中拼接SQL的逻辑会生成如下非法SQL语句:

UPDATE listCarsSET Make=@Make, CarModel=@CarModel, Year=@Year, Colour=@Colour, Registration=@Registration, Price=@PriceWHERE Id=@Id

由于C#字符串是直接按字面拼接,listCars后没有空格直接衔接SET,拼成了数据库无法识别的标识符listCarsSET;@Price后没有空格直接衔接WHERE,拼成了PriceWHERE。SQL Server解析语句时无法识别SET关键字,就会在首个字段Make位置抛出语法错误,这也是你断点看到@Make参数值完全正常,但依然报错的原因。

修复方案

在SQL字符串拼接的对应位置补上缺失的空格即可,修正后的SQL拼接代码如下:

string sql = "UPDATE listCars " +
             "SET Make=@Make, CarModel=@CarModel, Year=@Year, Colour=@Colour, Registration=@Registration, Price=@Price " + 
             "WHERE Id=@Id";

修正后拼接生成的合法SQL语句为:

UPDATE listCars SET Make=@Make, CarModel=@CarModel, Year=@Year, Colour=@Colour, Registration=@Registration, Price=@Price WHERE Id=@Id

执行即可正常完成更新操作。

排查建议

后续遇到同类SQL语法错误时,可优先在执行前断点查看拼接完成的完整SQL字符串文本,这类漏空格、关键字拼写错误的问题可以直接定位,不需要逐行核对参数取值、表字段映射,能大幅缩短排查时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:24:21