如何解决sqladapter.InsertCommand c# ado.net中的问题(需要声明@id)

how to solve the problem(@id needs to be declared) in sqladapter.InsertCommand c# ado.net

我一直收到这个错误

System.Data.SqlClient.SqlException: La variable scalaire "@id" doit être déclarée.

在适配器的插入命令上,即使在参数中声明了我的值

我该怎么办?

这是代码

private void BT_Add_Click(object sender, EventArgs e)
{
    adapter.SelectCommand.Parameters.AddWithValue("@id", txtID.Text);
    adapter.SelectCommand.Parameters.AddWithValue("@name", txtName.Text);
    adapter.SelectCommand.Parameters.AddWithValue("@lastname", txtLastName.Text);
    adapter.SelectCommand.Parameters.AddWithValue("@adress", txtAdress.Text);
    adapter.SelectCommand.Parameters.AddWithValue("@email", txtEmail.Text);
    connection.Open();
    adapter.InsertCommand = new SqlCommand("insert into client values(@id,@name,@lastname,@adress,@email)", connection);
    adapter.InsertCommand.ExecuteNonQuery();
    MessageBox.Show("Row inserted !! ");
}

您已将参数添加到 SelectCommand;这不会自动将它们添加到 InsertCommand。这两个命令是不同的东西

这里不需要适配器;只需新建一个 SqlCommand,设置 SQL,为其添加参数并执行