system.data.oledb.oledbexception:'更新语句中出现语法错误'

olqngx59  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(424)

我在尝试更新时遇到此错误,但在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)));
fd3cxomn

fd3cxomn1#

转换为字符串以及无序参数最终可能会导致“数据类型不匹配”错误或只是执行失败(oledbcommand参数顺序和优先级),但语法错误很可能是由于使用日期作为字段名而导致的。日期是一个保留字(内在函数)。它甚至会导致accessvba中的execute命令出错。重命名字段或将其括在[]中以定义为字段名: [Date]=@date .

相关问题