我在尝试更新时遇到此错误,但在update语句中找不到任何问题。
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条答案
按热度按时间fd3cxomn1#
转换为字符串以及无序参数最终可能会导致“数据类型不匹配”错误或只是执行失败(oledbcommand参数顺序和优先级),但语法错误很可能是由于使用日期作为字段名而导致的。日期是一个保留字(内在函数)。它甚至会导致accessvba中的execute命令出错。重命名字段或将其括在[]中以定义为字段名:
[Date]=@date
.