运行访问数据库的更新查询时出错
本文关键字:查询 出错 更新 访问 数据库 运行 | 更新日期: 2023-09-27 18:06:41
这是我的代码:
OleDbConnection con = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "/shoping mall.mdb");
con.Open();
OleDbCommand cmd = new OleDbCommand("update RecordofItems set RecordofItems.Bill_no = " + textBox1.Text + ", RecordofItems.Received_from = '" + textBox62.Text + "', RecordofItems.Item_Code = " + textBox2.Text + ", RecordofItems.Quantity = " + textBox32.Text + ", RecordofItems.Sale_Rate = " + textBox47.Text + " where Item_Name = '" + textBox17.Text + "'", con);
int x = 0;
x = cmd.ExecuteNonQuery();
if (x > 0)
{
MessageBox.Show("record deleted" + x);
}
else
{
MessageBox.Show("no record exixt");
}
con.Close();
我想在我的"RecordofItems"表中更新选定的列,有10列,但我想更新只有6个选定的列,当我运行查询时,它显示错误"没有一个或多个所需参数的值"该怎么办?请尽快帮助我。
错误No value given for one or more required parameters
通常出现在单引号放错位置时。
试试这两个
-
尝试为你的数字db列分配一个数值,即用这些更新你的查询:
RecordofItems.Bill_no = " + Convert.ToInt32(textBox1.Text) + ", RecordofItems.Item_Code = " + Convert.ToInt32(textBox2.Text) + ", RecordofItems.Quantity = " + Convert.ToInt32(textBox32.Text) + ", RecordofItems.Sale_Rate = " + Convert.ToInt32(textBox47.Text) +
-
你的一个文本字段可能有一个单引号在里面,所以尝试替换/更新你的文本字段,像这样:
RecordofItems.Received_from = '" + textBox62.Text.Replace("'","''") + "',
基本上,用两个单引号代替单引号。
看看这些是否能解决你的问题。
另外,请注意,永远不要通过连接文本框(字符串)来创建sql查询。使用命令参数。它们将使您免于SQL注入。