C#中封装的数据库操作怎么再转换成SQL语句,封装成一个事务,然后UPDATE数据库?

rogetshao0001 2017-04-15 05:16:17
用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();
}
...全文
271 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
  深田之星Database2Sharp,是一个NHibernate、Castle-ActiveRecord、Enterprise Library和PetShop架构的C#代码和Java代码生工具,提供了对MS Sql2000、MS Sql2005、Oracle、Mysql、Access的支持;可以生各种架构代码,导出数据库文档、浏览数据库架构、查询数据、生Sql脚本等。 主要的功能如下:   1、Castle的ActiveRecord代码生功能,准确生各种关系。   2、NHibernate代码生,生相应的实体类和HBM文件。   3、PetShop架构代码的生(多种形式),直接生所需的解决方案,为你封装了功能强大的基础类库和数据访问基类。   4、Web界面自动生功能,生列表、增加、修改界面代码和后台代码,包括烦琐的绑定数据和赋值语句代码,为你封装具有漂亮界面和布局的编辑、查看、添加和分页控件,随手可得,率性而为。   5、Enterprise Library代码生,生整个项目工程框架,包含实体类、数据访问类、业务类、Asp.net页面类,利用泛型及缓存机制,良好的架构极大简化代码,强大完善的基类使你甚至不用编写一行代码。   6、可以查看数据库的信息和实现查询分析器的功能,可以很快地看看数据库的信息。   7、实体类快速生,提供各种常用的实体类代码生,直接在窗体显示,并用语法高亮显示,方便拷贝使用。   8、数据库文档的生,在模块设计非常有用,谁想去写描述和字段名称,类型的对应关系呢?   9、测试数据脚本的生,在外键非常复杂的表,我们想添加一条记录都是很容易哦,这个可以更加表的外键关系调整插入测试数据的顺序,很周到吧。   10、增加Select、Update、Insert和Delete基本语句代码的生,方便您直接在代码使用。 11、增加Java框架(Ibatis+Spring+struts+Extjs)代码的生;添加Java实体类快速生。 12、增加企业级别的界面自动生,集了标准、美观、统一的界面元素。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧