繁体   English   中英

大于值子句的插入语句必须匹配列数

[英]Insert statements more than values clause must match the number of columns

我收到此错误:

INSERT语句中的列多于VALUES子句中指定的VALUES VALUES子句中的VALUES数必须与INSERT语句中指定的列数匹配。

这是我的代码:

if (pictureBox1.Image != null)
{
                MemoryStream ms = new MemoryStream();
                pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
                byte[] a = ms.GetBuffer();
                ms.Close();

                MemoryStream ms1 = new MemoryStream();
                pictureBox2.Image.Save(ms1, pictureBox2.Image.RawFormat);
                byte[] a2 = ms1.GetBuffer();
                ms1.Close();

                MemoryStream ms2 = new MemoryStream();
                pictureBox3.Image.Save(ms2, pictureBox3.Image.RawFormat);
                byte[] a3 = ms2.GetBuffer();
                ms2.Close();

                MemoryStream ms3 = new MemoryStream();
                pictureBox4.Image.Save(ms3, pictureBox4.Image.RawFormat);
                byte[] a4 = ms3.GetBuffer();
                ms3.Close();


                cmd.Parameters.Clear();
               // cmd1.Parameters.Clear();

                cmd.Connection = con;
               cmd1.Connection = con;
                cmd.Parameters.AddWithValue("@img1", a);
                cmd.Parameters.AddWithValue("@img2", a2);
                cmd.Parameters.AddWithValue("@img3", a3);
                cmd.Parameters.AddWithValue("@img4", a4);

             cmd1.CommandText = "Insert into proiecte(numeproiect,judet,oras,strada,numaretajeimobil,clasaenergetica,parcare,mezanin,demisol,mansarda,descriereproiect)values('"
+ nameofproject.Text + "','" + district_text.Text + "','" + city_text.Text + "','" + street_text.Text + "','" + bunifuDropdown2.selectedValue + "','" + bunifuMaterialTextbox1.Text + "','" + bunifuDropdown1.selectedValue + "','" + mezanine + "','" + semibasement + "','" + mansard + richTextBox1.Text + "')";
               cmd.CommandText = "insert into proiecte(img1,img2,img3,img4)values(@img1,@img2,@img3,@img4)";
                con.Open();
                cmd1.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
                con.Close();
}

您的插入命令有11列,其中包含10个值

    cmd1.CommandText = "Insert into proiecte(
                            numeproiect
                            ,judet
                            ,oras
                            ,strada
                            ,numaretajeimobil
                            ,clasaenergetica
                            ,parcare
                            ,mezanin
                            ,demisol
                            ,mansarda
                            ,descriereproiect)

                    values(
                            '"+ nameofproject.Text + "'
                            ,'" + district_text.Text + "'
                            ,'" + city_text.Text + "'
                            ,'" + street_text.Text + "'
                            ,'" + bunifuDropdown2.selectedValue + "'
                            ,'" + bunifuMaterialTextbox1.Text + "'
                            ,'" + bunifuDropdown1.selectedValue + "'
                            ,'" + mezanine + "'
                            ,'" + semibasement + "'
                            ,'" + mansard + richTextBox1.Text + "')";

更新:为您的评论,通过删除cmd1组合cmd1和cmd并像这样构建cmd

    cmd.CommandText = "Insert into proiecte(
                             numeproiect
                            ,judet
                            ,oras
                            ,strada
                            ,numaretajeimobil
                            ,clasaenergetica
                            ,parcare
                            ,mezanin
                            ,demisol
                            ,mansarda
                            ,descriereproiect
                            ,img1
                            ,img2
                            ,img3
                            ,img4)

                    values(@numeproiect
                            ,@judet
                            ,@oras
                            ,@strada
                            ,@numaretajeimobil
                            ,@clasaenergetica
                            ,@parcare
                            ,@mezanin
                            ,@demisol
                            ,@mansarda
                            ,@descriereproiect
                            ,@img1
                            ,@img2
                            ,@img3
                            ,@img4)";

    cmd.Parameters.AddWithValue("@numeproiect", nameofproject.Text);
    cmd.Parameters.AddWithValue("@judet", district_text.Text);
    cmd.Parameters.AddWithValue("@oras", city_text.Text);
    cmd.Parameters.AddWithValue("@strada", street_text.Text);
    cmd.Parameters.AddWithValue("@clasaenergetica", bunifuDropdown2.selectedValue);
    cmd.Parameters.AddWithValue("@parcare", bunifuMaterialTextbox1.Text);
    cmd.Parameters.AddWithValue("@mezanin", mezanine );
    cmd.Parameters.AddWithValue("@demisol", semibasement );
    cmd.Parameters.AddWithValue("@mansarda", mansard);
    cmd.Parameters.AddWithValue("@descriereproiect", a);

    cmd.Parameters.AddWithValue("@img1", a);
    cmd.Parameters.AddWithValue("@img2", a2);
    cmd.Parameters.AddWithValue("@img3", a3);
    cmd.Parameters.AddWithValue("@img4", a4);

请记住要修复错误varbinary并更正参数。 我只是复制粘贴您的问题,所以它包含错误

看起来您在INSERT部分中有11列,但只能输入10个值。

您可能需要在mansard + richTextBox1.Text部分之间添加另一个逗号。

您的问题是最后两个值

+ "','" + mansard + "', '" + richTextBox1.Text + "')";

假设这两个都是文本值。 如果不是这样,只需删除单引号,但您需要使用逗号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM