C#中封装的数据库操作怎么再转换成SQL语句,封装成一个事务,然后UPDATE数据库?
用SQLite开发了一个小程序,程序中对数据库的操作利用了C#封装的dataset,datatable,在结束时采用DATAADAPTER.UPDATE写入数据库,结果发现这样操作的数据库执行效率很低,原因是SQLite每一条指令都需要把数据表重新加载,导致大量的IO。解决方法是要把SQL语句封装成一个事务,这样只有一次IO,但是怎么把dataset,datatable的操作转换成SQL语句呢?或者是否还有其它方法,把UPDATE封装成一个事务呢?
代码如下,怎么修改?
using (SQLiteTransaction tran = SQLiteConnection1.BeginTransaction())
{
foreach (DataRow drCurrent in myTables2.Rows)
{
drCurrent2 = mySQLiteTables2.NewRow();
drCurrent2["词组"] = drCurrent["词组"];
drCurrent2["词频"] = stoi(drCurrent["词频"].ToString());
mySQLiteTables2.Rows.Add(drCurrent2);
string cmdInsertText = "insert into 词组表 values(@词组,@词频)";//设置带参SQL语句
this.SQLiteDataAdapter2.InsertCommand = new SQLiteCommand(cmdInsertText,SQLiteConnection1,tran);
this.SQLiteDataAdapter2.InsertCommand.ExecuteNonQuery();
}
tran.Commit();
}