OleDB无法将更改保存在巨大的xlsx文件上

时间:2020-07-06 19:20:54

标签: vb.net oledb rpa

我正在与OleDB一起在一个大xlsx文件(大约170k行)上执行大规模插入。由于某种原因,文件在每次查询后都不会更改,因此我将操作一次分成大约1700个插入块,因此现在需要100次操作才能完成该过程。

每次批量插入后,我关闭连接并再次打开以提交更改。但是,在第28次批量插入之后,OleDB将停止提交更改。存在内存中的操作(如果我查询要插入多少行以及实际插入了多少行,一切似乎都很好);但是,一旦连接关闭,文件实际上并没有更新,并且过程无提示地失败-不会引发任何错误。我找不到有关此行为的大量文档,有人遇到过类似的错误吗?

必须使用OleDB和大xlsx文件;我知道这很糟糕,但这不是我的选择,我对此无能为力。谢谢大家的帮助。

代码正确无误

moConnection = New OLEDBConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""C:\something\something.xlsx"";Extended Properties=""Excel 12.0 Xml;HDR=YES""")
moConnection.Open();
Dim oCommand As New OleDbCommand("INSERT INTO [table$] SELECT * FROM [anotherTable$] WHERE [stato] LIKE '%INVIATO%'", moConnection)
oCommand.ExecuteNonQuery()
moConnection.Close()
moConnection.Dispose()

通过id上的附加WHERE子句将批量插入拆分为较小的块,以仅获取内容的子集。

0 个答案:

没有答案
相关问题