您好,我有一个数据表,有 36 列,大约 112000 条记录和一个空 mdb 文件,将该表添加到空 mdb 数据库的最佳方法是什么?
我是否必须使用 SQL 命令CREATE TABLE
并将每一列手动添加到创建的数据表中,然后使用 SQLinsert
命令?
有没有类似的东西SqlBulkCopy
可以用于这项任务?请注意,Datatable 是在运行时创建的,并且从未在数据库中大部分数据取自 XML 文件
我认为最好的方法是使用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