0
我想写一个简单的代码行,将删除某个表中的所有数据行。 (使用c#和MS Access 2010) 该表包含约1000行,10列,并且它有点慢。有没有办法使用c#和MS Access删除表中的所有行?
此代码的工作:
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");
但我想有可能是一个更短和更有效的方式来做到这一点。
谢谢你们。
谢谢,它是完美的!但有一个问题 - 没有Execute命令可用。我应该使用ExecuteNonQuery()吗?有什么不同?再次感谢。 – 2012-04-29 13:10:44
@ Bobcat100是的,你应该使用ExecuteNonQuery。不同的是,这种方法存在,而执行是巴勃罗圣克鲁斯的不完美记忆的产物。更有帮助的是,我会补充一点,ExecuteNonQuery适用于不从数据库检索数据的SQL语句:其整数返回值表示受命令影响的行数。 ExecuteScalar从数据库返回一个值(例如,使用“USCoins中的select min(Name)”调用ExecuteScalar将返回字符串“dime”)。最后,当然,ExecuteQuery以DbDataReader的形式返回一组行。 – phoog 2012-04-29 14:03:16
ExecuteQuery和DbDataReader是phoog不完美记忆的产物。它们是ExecuteReader和OleDbDataReader。 – 2013-12-12 08:07:10