通过VB.net 2010 csv文件的快速导入到数据库的访问(Fast import of csv

2019-10-16 23:14发布

我有收到,我想在导入数据的约30000行从选项卡中的Access数据库文件分开的速度问题。 文件导入是从我写了一个VB.net 2010程序管理。

该方案目前通过各线循环并发出为每一个SQL INSERT语句。 然而这需要大约2个小时完成。 如果我手动导入在同一个文件直接插入使用获取外部数据访问,大约需要30秒。

我在想,我也许可以创建一个与MS访问一个DataGridView并以某种方式运行本地.NET命令将文件导入到datagridview的,然后迅速将数据写入访问,但我不知道这是可能的。

通过这样做手工输入的方式是不是一种选择,它需要经过各种原因vb.net应用。

任何一个可以提供我怎么可能会快一点有什么建议?

感谢西蒙

Answer 1:

你可以对你的MS Access连接运行SQL语句来导入文本/ CSV。 要导入到一个新表:

cmd.CommandText =
    "SELECT F1 AS id, F2 AS firstname " &
    "INTO MyNewTable " &
    "FROM [Text;FMT=Delimited;HDR=No;CharacterSet=850;DATABASE=C:\__tmp].table1.csv;"

要导入到现有的表:

cmd.CommandText =
    "INSERT INTO MyExistingTable " &
    "SELECT F1 AS id, F2 AS firstname " &
    "FROM [Text;FMT=Delimited;HDR=No;CharacterSet=850;DATABASE=C:\__tmp].table1.csv;"

您还可以使用非标准定界符schema.ini文件。 ( 将数据导出到一个预先格式化的文件 , 创建一个从接入逗号分隔文件(CSV) -从Windows日常安排 )



Answer 2:

问题是,为什么在所有使用的.Net? 如果您使用的是Access的新版本将运行完整的SQL。 这使您可以使用SQL 批量插入 。 大容量插入刮裤子在SQL数据插入的每一个其他方法。

如果你需要操作数据可以在批量堆表(从文件中的数据只是一个原始转储),然后使用SQL更新/相关的数据移动到正确的表(一个或多个)插入原始数据。



文章来源: Fast import of csv file into access database via VB.net 2010