从OleDB C#中删除数据

时间:2017-04-13 14:28:26

标签: c# oledb

我在数据库中的列是[CusName], [CusNo], [CusAdvance], [TotalAmount], [ID][CusItem]。我从textBox4.Text获取要删除的客户名称的输入。 我根据你们的所有内容修改了代码。但仍然没有删除条目。它们仍然留在数据库中。

我的代码:

void Button1Click(object sender, EventArgs e)
{
   try
   {
      OleDbConnection delConn = new 
          OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data 
          Source=C:/NavneethCollection.accdb;Persist Security Info=False;");
      delConn.Open();
      String delQuery = "DELETE FROM NavColl WHERE [CusName]= @CustName";
      OleDbCommand delcmd = new OleDbCommand();
      delcmd.CommandText = delQuery;
      delcmd.Connection = delConn;
      delcmd.Parameters.AddWithValue("@CustName", textBox4.Text);
      delcmd.ExecuteNonQuery();
      MessageBox.Show("Customer has been successfully removed!");
   }
   catch(Exception exc)
   {
      MessageBox.Show("Error: "+exc.Message);
   }
}

2 个答案:

答案 0 :(得分:3)

在删除命令中,您应该只使用

try
 {
  OleDbConnection delConn = new 
      OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data 
      Source=C:/NavneethCollection.accdb;Persist Security Info=False;");
  delConn.Open();
  String delQuery = "DELETE FROM NavColl WHERE [CusName]= @CustName";
  OleDbCommand delcmd = new OleDbCommand();
  delcmd.CommandText = delQuery;
  delcmd.Connection = delConn;
  delcmd.Parameters.AddWithValue("@CustName", textBox4.Text);
  delcmd.ExecuteNonQuery();
  MessageBox.Show("Customer has been successfully removed!");
 }
 catch(Exception exc)
 {
  MessageBox.Show("Error: "+exc.Message);
 }

答案 1 :(得分:0)

尝试以下代码

您必须将?作为参数名称而不是[CusName]

  String delQuery = "DELETE FROM NavColl WHERE [CusName]= ?";
  OleDbCommand delcmd = new OleDbCommand();
  delcmd.CommandText = delQuery;
  delcmd.Connection = delConn;
  delcmd.Parameters.AddWithValue("?", textBox4.Text);
  delcmd.ExecuteNonQuery();