1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Function CopyToDB(ByRef tblSource As DataTable, ByVal strDbFile As String) As Boolean
Dim adapter As OleDbDataAdapter
Dim connection As New OleDbConnection
Dim ds As New DataSet
Dim fi As New FileInfo(strDbFile)
Dim strConnect As String = ""
Dim strInsertCommand As String
Dim strTable As String = ""
Dim tblDest As DataTable
If Not fi.Exists Then
MsgBox(String.Format("The file {0} doesn't exist", strDbFile))
Return False
Exit Function
End If
Select Case fi.Extension.ToUpper
Case ".ACCDB"
strConnect = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Jet OLEDB:Database Password={1};", strDbFile, "ThePassword")
strTable = "CounterParty"
connection.ConnectionString = strConnect
Try
connection.Open()
adapter = New OleDbDataAdapter("SELECT * FROM " & strTable & ";", connection)
Dim cmdBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
adapter.Fill(ds)
tblDest = ds.Tables(0)
strInsertCommand = "INSERT INTO CounterParty (ID, Name, NickName, AccountNumber, AccountCountry) VALUES (?, ?, ?, ?, ?)"
adapter.InsertCommand = New OleDbCommand(strInsertCommand)
For Each record As DataRow In tblSource.Rows
tblDest.ImportRow(record)
'Stop
Debug.Print(String.Join("|", tblDest.Rows(tblDest.Rows.Count - 1).ItemArray))
adapter.Update(tblDest) ' <== Erreur ici
Next
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
Return True
Case Else
Return False
End Select
End Function |
Partager