尝试通过C#应用程序将数据插入SQL Server数据库时出错

时间:2013-11-13 11:12:08

标签: c# sql sql-server

private void button1_Click(object sender, EventArgs e)
{
    SqlConnection cs = new SqlConnection("Data Source=SALE7\\SALE7;Initial Catalog=YOUTUBE;Integrated Security=True");
    SqlDataAdapter da = new SqlDataAdapter();
    da.InsertCommand = new SqlCommand("INSERT INTO tblContacts VALUES (@FIRSTNAME,@LASTNAME)", cs);
    da.InsertCommand.Parameters.Add("@FIRSTNAME", SqlDbType.VarChar).Value = textBox1.Text;
    da.InsertCommand.Parameters.Add("@LASTNAME", SqlDbType.VarChar).Value = textBox2.Text;

    cs.Open();
    da.InsertCommand.ExecuteNonQuery(); // Error occurs here
    cs.Close();
}

异常细节:

  

列名或提供的值数与表不匹配   定义

4 个答案:

答案 0 :(得分:3)

例外是告诉你出了什么问题:

你的表没有两列(我的猜测:它有更多)。

因此,如果您只有一个带有自动增量的ID元素,您可以将命令更改为

da.InsertCommand = new SqlCommand("INSERT INTO tblContacts (firstname,lastname) VALUES (@FIRSTNAME,@LASTNAME)", cs);

答案 1 :(得分:3)

问题是您的表格中可能有两列以上,但您错过了

da.InsertCommand = new SqlCommand("INSERT INTO tblContacts(FIRSTNAME,LASTNAME) VALUES (@FIRSTNAME,@LASTNAME)", cs);

答案 2 :(得分:2)

你应该像这样使用插入查询

INSERT INTO tblContacts(first_name_column_name, last_name_column_name) VALUES (@FIRSTNAME,@LASTNAME)

这个错误引发了,因为您的表中有超过2列且数据库无法知道您尝试填充哪些列

答案 3 :(得分:0)

您指定的列可能多于两列。 使用如下的查询:

插入INTO tblContacts(名字,姓氏)VALUES(@ firstname,@ lastname)