求助!数据导入到Access用了事务还是特别慢,还有什么好方法吗?

mrqzhj 2016-01-14 05:12:03
27000多条数据要导入到Access数据库中,用了事务还是特别慢,用了6分多钟,各位高手还有什么更好的方法吗?还是我事务写错了?下面是代码
...全文
297 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrqzhj 2016-01-18
  • 打赏
  • 举报
回复
用ADODB自己解决,从6分多钟变成20秒,在忍受范围内了!

ADODB.Connection cn = new ADODB.Connection();
cn.ConnectionString = connectionString;
cn.Open(connectionString, null, null, -1);
object dummy;
for (int n = 0; n < arrayList.Count; n++)
{
    cn.Execute(arrayList[n].ToString(), out dummy, -1);
    iMin = iMin + 1;
    progressBar1.Value = Convert.ToInt32(iMin);
}
cn.Close();
LinuxCard 2016-01-15
  • 打赏
  • 举报
回复
换数据库吧,我原来有个日志程序,换成sqlite了后,比access块了10倍
mrqzhj 2016-01-15
  • 打赏
  • 举报
回复
看来没什么好办法只能换数据库了
LinuxCard 2016-01-15
  • 打赏
  • 举报
回复
那你就忍了吧
mrqzhj 2016-01-15
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
你应该重点检查 sqlstr 内容! 不要使用 Jet 引擎数据库。它在至少11、12年前就被 Sql Server Compact 官方明确公告淘汰了。Access(Jet)数据库在事务出错时,每一次都造成 mdb 文件损坏,然后你就必须手动修复(使用 ms access 程序,那么你还得在服务器上安装一套 office 才能修复 mdb 文件错误)。 使用 Sql Server Compact 数据库来取代 Access。
我做的是桌面应用
mrqzhj 2016-01-15
  • 打赏
  • 举报
回复
引用 3 楼 LvBao_117 的回复:
要导入到access的数据从哪里来的?文件吗
要导入的Access文件是打包到程序里的,导出后要给客户用的
mrqzhj 2016-01-15
  • 打赏
  • 举报
回复
引用 8 楼 LinuxCard 的回复:
换数据库吧,我原来有个日志程序,换成sqlite了后,比access块了10倍
可这个导出的文件是要给客户的,不能换啊
  • 打赏
  • 举报
回复
你应该重点检查 sqlstr 内容! 不要使用 Jet 引擎数据库。它在至少11、12年前就被 Sql Server Compact 官方明确公告淘汰了。Access(Jet)数据库在事务出错时,每一次都造成 mdb 文件损坏,然后你就必须手动修复(使用 ms access 程序,那么你还得在服务器上安装一套 office 才能修复 mdb 文件错误)。 使用 Sql Server Compact 数据库来取代 Access。
  • 打赏
  • 举报
回复
另外,就你的代码来说,catch、close、dispose 哪些语句都是多余的。
tcmakebest 2016-01-14
  • 打赏
  • 举报
回复
Access就别要求太高了
LvBao_117 2016-01-14
  • 打赏
  • 举报
回复
要导入到access的数据从哪里来的?文件吗
  • 打赏
  • 举报
回复
事务只是保证数据一致性,并不是提高速度的,相反它反而会降低速度 常见的提高速度的方法是将多个sql拼接在一起,一次性执行,这在access不知道可不可行
xdashewan 2016-01-14
  • 打赏
  • 举报
回复
首先事务没有提高插入速度的功能,其次你如何获知单单“insert”操作执行了6分钟而不是其他操作的综合,我并有看到有任何计算代码在上面

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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