【发布时间】:2020-12-31 19:51:08
【问题描述】:
我想在 MsSql 数据表中插入一条记录。这是一件容易的事,但目标表包含特殊的命名列,例如: 不幸的是,我无法重命名该列,因为我不拥有该数据库。 我的代码因异常而失败:
using (SqlConnection conn = GetSqlConnection())
{
SqlCommand cmd = CreateNewCmd(conn);
cmd.CommandText = "INSERT INTO test VALUES(@mz,x)";
cmd.Parameters.Add("@mz,x", System.Data.SqlDbType.Int).Value = 1;
cmd.ExecuteNonQuery();
}
例外是:
',' 附近的语法不正确。
必须声明标量变量“@mz”。
问题当然出在逗号上。如何保护我的 sql 中的命令,或者如何将一条简单的记录插入到这个表中?
感谢您的帮助!
【问题讨论】:
-
你为什么要把你的参数命名为
@mz,x?您没有在代码中的任何位置指定列名。 -
试试
INSERT INTO test ([<"mz,x",int>]) VALUES(@mz) -
您混淆了列名和参数名。
-
约翰,你是对的!不必在列名之后命名参数。如果 1 使用正常的参数名称,则系统可以将其插入到表中。
-
你是对的家伙!谢谢!
标签: c# sql sql-server-2005