System.Data.OleDb.OleDbException:'UPDATE语句中的语法错误。 '

时间:2020-07-06 14:56:18

标签: c# sql ms-access

尝试更新时出现此错误,但是在更新语句中找不到任何问题。

str = "UPDATE BillTable SET Bill_No = @billno, Bill_Year = @billYear, Voucher_No= @voucher, Date= @date, Group_ID= @groupname, Vendor_Id= @vendorname, Amount= @amount WHERE ID= @billID";

            cmd = new OleDbCommand(str, cn);
            cmd.Parameters.Add(new OleDbParameter("@billID", Convert.ToString(inovidid)));
            cmd.Parameters.Add(new OleDbParameter("@billYear", Convert.ToString(fylabel.Text)));
            cmd.Parameters.Add(new OleDbParameter("@billno", Convert.ToString(billno.Text)));
            cmd.Parameters.Add(new OleDbParameter("@voucher", Convert.ToString(voucher.Text)));
            cmd.Parameters.Add(new OleDbParameter("@date", Convert.ToString(DateTimePicker1.Text)));
            cmd.Parameters.Add(new OleDbParameter("@groupname", Convert.ToString(groupidDB)));
            cmd.Parameters.Add(new OleDbParameter("@vendorname", Convert.ToString(vendoridDB)));
            cmd.Parameters.Add(new OleDbParameter("@amount", Convert.ToString(amount.Text)));


1 个答案:

答案 0 :(得分:3)

转换为字符串以及乱序参数最终可能会导致“数据类型不匹配”错误或仅仅是执行失败(OleDbCommand parameters order and priority),但是语法错误很可能是由于使用Date作为字段名称引起的。日期是保留字(内部功能)。甚至在Access VBA中使用Execute命令会导致错误。重命名该字段或将其括在[]中以定义为字段名称:[Date]=@date

相关问题