Private Function getValue(ByRef table As DataTable) As OleDbCommandBuilder
Dim cb As OleDbCommandBuilder
If Not ht.ContainsKey(table) Then
cb = New OleDbCommandBuilder(adapter)
ht.Add(table, cb)
Return cb
Else
Return ht.Item(table)
End If
Public Sub FG_TrueDBSelect(ByVal strSQL As String, ByRef table As DataTable)
FG_MDBClose()
FG_MDBOpen()
Try
conn.Open()
adapter = New OleDbDataAdapter
oCommandBuilder = getValue(table)
adapter.SelectCommand = New OleDbCommand(strSQL, conn)
table.Clear()
adapter.FillSchema(table, SchemaType.Source)
adapter.Fill(table)
oCommandBuilder.RefreshSchema()
Catch ex As Exception
MsgBox(ex.Message)
Finally
conn.Close()
End Try
End Sub
update
Public Sub FG_TrueDBUpdate(ByRef table As DataTable)
Try
conn.Open()
'If the DataTable is changed nothing
If IsNothing(table.GetChanges) Then
Return
End If
oCommandBuilder = ht.Item(table)
'adapter.DeleteCommand = oCommandBuilder.GetDeleteCommand
'adapter.InsertCommand = oCommandBuilder.GetInsertCommand
adapter.UpdateCommand = oCommandBuilder.GetUpdateCommand
adapter.UpdateCommand.CommandText = makeUpSql(oCommandBuilder.GetUpdateCommand.CommandText)
adapter.Update(table)
FG_MDBClose()
FG_MDBOpen()
Catch ex As Exception
MsgBox(ex.Message)
Finally
table.AcceptChanges()
conn.Close()
End Try
End Sub