You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C# WinForm插入URL参数报错:关键字‘user’附近语法不正确

问题原因及解决办法

这个报错的核心原因很明确:user是SQL Server的保留关键字,你直接在INSERT语句里把它作为列名使用时,SQL解析器会误以为你在调用这个关键字的功能,而不是指代你的数据表列,因此抛出了语法错误。

解决方法非常简单,只需要把列名user用方括号[]包裹起来,明确告诉SQL这是一个列名而非关键字。修改后的SQL语句如下:

String query = @"INSERT INTO dbo.PrivateUsers([user]) VALUES(@user);";

完整的修正后代码示例:

SqlConnection con = new SqlConnection(DataBase.GetConString());
con.Open();
String query = @"INSERT INTO dbo.PrivateUsers([user]) VALUES(@user);";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@user", url);
int count = cmd.ExecuteNonQuery();
con.Close();

另外给你个实用建议:后续设计数据库表结构时,尽量避免使用SQL的保留关键字作为表名、列名或其他对象名,这样能从根源减少类似语法问题,让代码更易读也更稳定。

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

火山引擎 最新活动