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