C#多线程写数据库

来源:百度知道 编辑:UC知道 时间:2024/06/15 10:54:35
小弟最近要用ACCESS数据库 想要多线程写数据库 不知从何下手
比如表有 ID 和 NAME两个属性 麻烦大家给个例子 如果能加上出错重新存机制(rollback)我会追加分数的~
只是写入 不读出 先打开数据库 不是每次都打开 而是数据库一直开着 谢谢各位了
......答的都不大靠谱~
再问个问题吧~我总得把分送出去啊~
谁帮忙给个C#打日志的类
或者说说c#断言怎么用!

首先对数据库(尤其是 Access)使用多线程大多不会提高效率(除非 SQL 中有耗时但不好资源的操作,如 T-SQL 中休眠之类的语句)。

建议楼主:使用队列,将要执行的 SQL 语句放入队列中(如:System.Collection.Queue 或 ArrayList),然后用一根线程一条一条执行,另外 Access 不支持事物回滚只有自己想办法实现了。滥用多线程会加大程序开发的难度,以及包括程序的不稳定。

另外: cbyvft 的答案“…… 所有的线程使用同一个连接”
,是严重错误的!!连接对象 Connection 不能迸发,也就是不能多根线程共享一个连接对象,否则很容易引发异常(报错为:...基础对象与 RAW 分离之类的信息)。

若非要用多线程来做,我可以给你一段代码(我以前开发的项目中一部分),请加我的“百度Hi”并发消息给我,我传给你。
我不在这里帖代码了,因为实现的代码较多,而且比较复杂(使用多线程要考虑很多问题,代码要硕壮通用,所以代码量较大)。

[BlackSc.rar]
http://www.pudn.com/downloads67/sourcecode/app/detail241582.html
专门用于号码过滤功能的企业级应用软件!里面用到通信、多线程、数据库、文件处理等多项技术。 (2007-01-12, CSharp, 101KB, 45次)