1

我想编写一个简单的代码行来删除某个表中的所有数据行。(使用 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");

但我想可能有一种更短、更有效的方法来做到这一点。

谢谢你们。

4

2 回答 2

9

就在这里。只需使用 SQL 命令:

delete from Heb;

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

OleDbCommand ac = new OleDbCommand("delete from Heb",Conn);
ac.ExecuteNonQuery();
于 2012-04-29T12:34:20.327 回答
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");

我得到这个错误

于 2020-08-27T12:25:13.523 回答