0
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

4 回答 4

3

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

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

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

da.InsertCommand = new SqlCommand("INSERT INTO tblContacts (firstname,lastname) VALUES (@FIRSTNAME,@LASTNAME)", cs);
于 2013-11-13T11:15:49.177 回答
3

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

da.InsertCommand = new SqlCommand("INSERT INTO tblContacts(FIRSTNAME,LASTNAME) VALUES (@FIRSTNAME,@LASTNAME)", cs);
于 2013-11-13T11:16:30.587 回答
2

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

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

出现此错误是因为您的表中有超过 2 列,并且数据库无法知道您尝试填充哪些列

于 2013-11-13T11:15:51.023 回答
0

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

插入到 tblContacts(firstname,lastname) VALUES (@firstname,@lastname)

于 2013-11-13T13:10:13.823 回答