运行访问数据库的更新查询时出错

时间:2013-03-30 15:40:38

标签: c#

这是我的代码:

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列所选列的选定列,当我运行查询时,它显示错误“无需一个或多个所需的参数值”该怎么办?请尽快帮助我。

1 个答案:

答案 0 :(得分:0)

错误单引号通常会出现错误No value given for one or more required parameters

尝试这两个。

  1. 尝试为您的数值数据库列分配一个数值,即用以下内容更新您的查询:

    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) +  
    

    或使用适用于您的色谱柱的任何合适的数字转换器。

  2. 您的某个文字字段中可能只有一个引号,因此请尝试替换/更新您的文字字段,如下所示:

    RecordofItems.Received_from = '" + textBox62.Text.Replace("'","''") + "',
    
  3. 所以基本上,用两个单引号替换单引号。

    看看这些是否解决了您的问题。

    另外,请注意,永远不要通过连接文本框(字符串)来创建SQL查询。使用命令参数。他们会从sql注入中拯救你。