【发布时间】:2020-10-26 17:40:53
【问题描述】:
我在尝试更新时收到此错误,但我无法在更新语句中找到任何问题。
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)));
【问题讨论】:
-
你为什么要把所有东西都转换成字符串?数据库中的所有字段也是字符串吗?
-
我同意@Selvin,您应该保持数据类型不变,以防它与数据库字段兼容。
-
OleDBParameters 是定位的 - 您必须按照它们被引入的顺序添加它们。字符串转换同上 - 但为什么要转换 TextBox.Text?你认为文本是什么类型?此外,不需要 VisualStudio 标签 - 标签包含一些文本以提供使用指导