使用C#删除访问数据库中的条目(Visual Studio)

Leo*_*res 0 c# database ms-access visual-studio-2010

我在删除数据库中的条目时遇到一些麻烦.我可以插入数据,但我无法删除它们.

我有一个2变量数据库,我想管理这些数据.

但是当我调试程序,第一个按钮(btnAdicionar)工作正常,但是当我按下按钮"btnRemover",我上线的erron"cmd.ExecuteNonQuery();"

我究竟做错了什么?谢谢

这是代码:

    private void btnAdicionar_Click(object sender, EventArgs e)
    {
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\BancodeDados\\Nomes.mdb");
        string sql = "INSERT INTO Nomes (Nome, Sobrenome) VALUES(?, ?)";
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        conn.Open();
        cmd.Parameters.AddWithValue("Nome", txtNome.Text);
        cmd.Parameters.AddWithValue("Sobrenome", txtSobre.Text);
        cmd.ExecuteNonQuery();
        conn.Close();
        this.nomesTableAdapter.Fill(this.nomesDataSet.Nomes);
    }

    private void btnRemover_Click(object sender, EventArgs e)
    {
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\BancodeDados\\Nomes.mdb");
        string sql = "DELETE FROM Nomes (Nome, Sobrenome) WHERE (?, ?)";
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        conn.Open();
        cmd.Parameters.AddWithValue("Nome", txtNome.Text);
        cmd.Parameters.AddWithValue("Sobrenome", txtSobre.Text);
        cmd.ExecuteNonQuery();
        conn.Close();
        this.nomesTableAdapter.Fill(this.nomesDataSet.Nomes);
    }
Run Code Online (Sandbox Code Playgroud)

Ica*_*rus 6

您的delete语句不是有效的SQL,因此在您调用时会出错 ExecuteNonQuery

它应该是这样的:

DELETE FROM Nomes WHERE Nome= ? and Sobrenome = ? 
Run Code Online (Sandbox Code Playgroud)