我有收到,我想在导入数据的约30000行从选项卡中的Access数据库文件分开的速度问题。 文件导入是从我写了一个VB.net 2010程序管理。
该方案目前通过各线循环并发出为每一个SQL INSERT语句。 然而这需要大约2个小时完成。 如果我手动导入在同一个文件直接插入使用获取外部数据访问,大约需要30秒。
我在想,我也许可以创建一个与MS访问一个DataGridView并以某种方式运行本地.NET命令将文件导入到datagridview的,然后迅速将数据写入访问,但我不知道这是可能的。
通过这样做手工输入的方式是不是一种选择,它需要经过各种原因vb.net应用。
任何一个可以提供我怎么可能会快一点有什么建议?
感谢西蒙
你可以对你的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日常安排 )
问题是,为什么在所有使用的.Net? 如果您使用的是Access的新版本将运行完整的SQL。 这使您可以使用SQL 批量插入 。 大容量插入刮裤子在SQL数据插入的每一个其他方法。
如果你需要操作数据可以在批量堆表(从文件中的数据只是一个原始转储),然后使用SQL更新/相关的数据移动到正确的表(一个或多个)插入原始数据。