0

データベースのエントリを削除するのに問題があります。データを挿入できますが、削除できません。

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);
    }
4

1 に答える 1

6

あなたの削除ステートメントは有効なSQLではないため、呼び出すとエラーが発生しますExecuteNonQuery

次のようになります。

DELETE FROM Nomes WHERE Nome= ? and Sobrenome = ? 
于 2012-08-31T20:20:15.820 に答える