有没有办法使用c#和MS Access删除表中的所有行?

时间:2012-04-29 12:31:59

标签: c# database ms-access

我想编写一个简单的代码行来删除某个表中的所有数据行。 (使用c#和MS Access 2010) 该表包含大约1000行,10列,并且有点慢。

此代码完成工作:

  connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Words\shinunonDB.accdb;Persist Security Info=False;";

  OleDbConnection Conn = new OleDbConnection();
  Conn.ConnectionString = connStr;
  sql = "select * from Heb";
  Conn.Open();
  OleDbDataAdapter da = new OleDbDataAdapter(sql, Conn);
  DataSet ds = new DataSet();
  OleDbCommandBuilder cb = new OleDbCommandBuilder(da);

  da.Fill(ds, "Heb");
  foreach (DataRow dRow in ds.Tables["heb"].Rows)
  {
      dRow.Delete();
  }
  da.Update(ds, "heb");

但我想可能会有一种更短更有效的方法。

谢谢你们。

2 个答案:

答案 0 :(得分:8)

是的,有。只需使用SQL命令:

delete from Heb;

您可以在OleDbConnection上发出SQL命令。像这样:

OleDbCommand ac = new OleDbCommand("delete from Heb",Conn);
ac.ExecuteNonQuery();

答案 1 :(得分:0)

对我来说,它可以使用以下几行:

OleDbCommand ac = new OleDbCommand("delete from Heb",Conn);
ac.ExecuteNonQuery();

但是它会删除表中的所有数据,而不仅仅是一行。

当我这样做

conn.Open();
OleDbCommand cmd = new OleDbCommand("delete from Kunden where id=" + txtKdnID.Text + " ", conn);
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Eintrag erfolgreich gelöscht");

我得到this error