您好我有一个Datatable,有36列和大约112000条记录以及一个空的mdb文件,将该表添加到空mdb数据库的最佳方法是什么?
我是否必须使用SQL命令CREATE TABLE
并手动将每列添加到创建的数据表中,然后使用SQL insert
命令?
是否有类似SqlBulkCopy
的内容可以用于此任务?
请注意,Datatable是在运行时创建的,从未存在于数据库中,大部分数据都来自XML文件
答案 0 :(得分:2)
我认为最好的方法是使用OleDBAdapter
类。在继续此过程之前,您需要首先构建数据库。正如OleDBAdapter
所需要的那样。如果您还记得,使用DataAdapter的Fill()
方法读取数据库中表的内容并填充本地缓存的DataTable对象。
在ADO.Net中保存数据有3个步骤:
Fill()
方法Update()
方法这是代码,
Using conn As New OleDBConnection("connectionString Here")
Using comm As New OleDBCommand()
With comm
.Connection = conn
.CommandType = CommandType.CommandText
.CommandText = "SELECT * FROM youTableName"
End With
Using adapter As New OleDBDataAdapter(comm)
Dim _dataTable As New DataTable()
adapter.Fill(_dataTable)
'add you records here '
' preferably by using loop '
Dim _dataRow As DataRow
_dataRow = _dataTable.NewRow()
_dataRow("colNameA") = "valueA"
_dataRow("colNameB") = "valueB"
'........ '
_dataTable.Rows.Add(_dataRow)
Dim dt_changes As DataTable
dt_changes = _dataTable.Changes()
If Not IsNothing(dt_changes) Then
Using commBuild As OleDbCommandBuilder(adapter)
Dim rowCount as Integer = adapter.Update(dt_changes)
MsgBox(rowCount & " updated")
End Using
End If
End Using
End Using
End Using