为什么说我的executenonquery ")"附近有语法错误?

ld.OpenConnection();
int i = com.ExecuteNonQuery();
部分代码
try
{
StringBuilder sql = new StringBuilder();
sql.AppendLine("INSERT INTO [CommodityUser]");
sql.AppendFormat(" VALUES('{0}',{1},{2},{3},)",
this.txtName.Text, Convert.ToInt32(this.cboType.SelectedValue), this.numQuantity.Value, this.numPrice.Value);
SqlCommand com = new SqlCommand(sql.ToString(), ld.Connection);
ld.OpenConnection();
int i = com.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("添加成功!", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
}

因为你的sql语句拼接错了。最快的解决办法是在这句加个断点,运行的时候鼠标移动过去,展开它的CommandText属性,点击放大镜,复制粘贴sql语句,直接在数据库里面执行看看。追问

但是我这个代码是复制的啊,我在另一个程序中没有出现任何问题。但是一到这里问题就来了!

追答

我都给你说了调试方法了,你怎么不试试?你上面拼接的方式和实际运行的值有关的,比如当文本框为空、或者文本框包含引号、括号、逗号就容易出现你那种情况。或者你就改用参数查询sqlparemeter,就绝不会报这种错误,网上查查怎么用。

追问

好吧 我试试

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-14
VALUES('{0}',{1},{2},{3},) 最后那个逗号是不是多了
相似回答