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

时间:2012-08-31 20:18:09

标签: c# database visual-studio-2010 ms-access

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

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

但是当我调试程序时,第一个按钮(btnAdicionar)工作正常,但是当我按下按钮" btnRemover"时,我在线上得到一个错误" 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);
    }

1 个答案:

答案 0 :(得分:6)

您的删除语句无效SQL,因此在您调用ExecuteNonQuery

时出错

它应该是这样的:

DELETE FROM Nomes WHERE Nome= ? and Sobrenome = ?