【发布时间】:2012-10-17 23:39:47
【问题描述】:
我正在使用 Excel 工作表中的数据填充数据集。我现在需要将此数据插入到具有相同结构的 Access 数据库中的表中。
约定要求我遍历 DataTable 的行并为每个行进行 INSERT 查询,但我想知道是否有更有效的方法来完成此操作?也许类似于 SQL Server 的 SqlBulkCopy?
这是我目前的代码:
Dim connection As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath(path) & ";Extended Properties=Excel 12.0;")
Dim adapter = New OleDbDataAdapter("SELECT * FROM [Sheet1$] WHERE EmpID IS NOT NULL", connection)
Dim results = New System.Data.DataSet
connection.Open()
adapter.Fill(results)
connection.Close()
connection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("~/App_Data/Leaves.accdb"))
`Now, short of a loop, how can I insert results.Tables(0) into my database?
感谢您的帮助。
【问题讨论】:
-
您可以直接从 Excel 表复制到 Access 表。我建议你这样做。
-
@Remou 我该怎么做呢? (请注意,由于各种原因,我无法使用 Interop。)
标签: asp.net excel ms-access datatable oledb