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)
您的delete语句不是有效的SQL,因此在您调用时会出错 ExecuteNonQuery
它应该是这样的:
DELETE FROM Nomes WHERE Nome= ? and Sobrenome = ?
Run Code Online (Sandbox Code Playgroud)