Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有一种方法可以使用c和MS Access删除表中的所有行?_C#_Database_Ms Access - Fatal编程技术网

C# 有没有一种方法可以使用c和MS Access删除表中的所有行?

C# 有没有一种方法可以使用c和MS Access删除表中的所有行?,c#,database,ms-access,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

我想编写一个简单的代码行,删除某个表中的所有数据行。 使用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");
但我想可能有一种更短更有效的方法


谢谢你们。

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

delete from Heb;
您可以对OLEDB连接发出SQL命令。大概是这样的:

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

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

delete from Heb;
您可以对OLEDB连接发出SQL命令。大概是这样的:

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

对我来说,它使用以下行工作:

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");

我明白了。

对我来说,它使用以下行工作:

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");

我明白了。

谢谢,太完美了!但有一个问题-没有可用的Execute命令。我应该使用ExecuteOnQuery吗?有什么区别?再次感谢。@Bobcat100是的,您应该使用ExecuteOnQuery。不同之处在于,这种方法是存在的,而Execute是Pablo Santa Cruz不完美内存的产物。更有用的是,我要补充一点,ExecuteOnQuery用于不从数据库检索数据的SQL语句:其整数返回值指示受命令影响的行数。ExecuteScalar从数据库返回单个值,例如,使用“select min Name from USCoins”调用ExecuteScalar将返回字符串“dime”。当然,最后,ExecuteQuery以DbDataReader的形式返回一组行。ExecuteQuery和DbDataReader是phoog不完善内存的产物。他们是ExecuteReader和OLEDB数据阅读器。谢谢,太完美了!但有一个问题-没有可用的Execute命令。我应该使用ExecuteOnQuery吗?有什么区别?再次感谢。@Bobcat100是的,您应该使用ExecuteOnQuery。不同之处在于,这种方法是存在的,而Execute是Pablo Santa Cruz不完美内存的产物。更有用的是,我要补充一点,ExecuteOnQuery用于不从数据库检索数据的SQL语句:其整数返回值指示受命令影响的行数。ExecuteScalar从数据库返回单个值,例如,使用“select min Name from USCoins”调用ExecuteScalar将返回字符串“dime”。当然,最后,ExecuteQuery以DbDataReader的形式返回一组行。ExecuteQuery和DbDataReader是phoog不完善内存的产物。它们是ExecuteReader和OleDbDataReader。