Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 运行access数据库的更新查询时出错_C# - Fatal编程技术网

C# 运行access数据库的更新查询时出错

C# 运行access数据库的更新查询时出错,c#,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

这是我的代码:

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

错误
一个或多个必需参数没有给定值
通常在您错误放置单个报价时出现

试试这两个

  • 尝试为数值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注入

    您确定列名称正确吗?顺便说一下,您应该使用命令参数。