Hallo Zusammen,
ich habe einmal eine Frage zu DataAdaptern. Recherhiert habe ich schon, bin aber leider bis jetzt noch nicht auf eine Lösung gekommen.
Ich möchte den Inhalt eines Datagridviews in 2 identische Tabellen von 2 Datenbanken schreiben.
[highlight=vbnet]
Dim conn_string As String = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=" & DBPassword & ";Data Source=" & Datenbankpfad
Dim query As String
query = "SELECT * FROM COLUMN where id = " & ID
Main.objDataAdapterDetails = New System.Data.OleDb.OleDbDataAdapter(query, conn_string)
Main.objDataTableDetails = New DataTable()
Dim cmd As System.Data.OleDb.OleDbCommandBuilder = New System.Data.OleDb.OleDbCommandBuilder(Main.objData AdapterDetails)
Main.objDataAdapterDetails.FillSchema(Main.objData TableDetails, SchemaType.Source)
Main.objDataAdapterDetails.Fill(Main.objDataTableD etails)
Main.dgv.DataSource = (Main.objDataTableDetails)
'.... Hier kommen die Benutzeränderungen
Main.objDataAdapterDetails.Update(Main.objDataTabl eDetails)
[/highlight]
Soweit funktioniert auch alles -> In der ersten Tabelle sind die Werte gespeichert. Nun soll in die 2. Tabelle der anderen DB gespeichert werden, das funktioniert jedoch nicht. Mein Code ist folgender:
[highlight=vbnet]
conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=" & DBPassword & ";Data Source=" & Datenbankpfad_secondDB
objDataAdapterDetails_secondDB = New System.Data.OleDb.OleDbDataAdapter(query, conn_string)
Dim cmd2 As System.Data.OleDb.OleDbCommandBuilder = New System.Data.OleDb.OleDbCommandBuilder(objDataAdapt erDetails_secondDB)
objDataAdapterDetails_secondDB.Update(Main.objData TableDetails)
[/highlight]
Bei diesem Update passiert einfach nichts, auch keine Fehlermeldung kommt hoch. Lasse ich das erste Update weg, funktioniert das zweite Update.
Meine Vermutung geht dahin, dass nach dem ersten Update in dem DataTable "objDataTableDetails" keine Änderungen mehr vorhanden sind und daher beim 2. Update nichts mehr zu schreiben gibt.
Evtl. gehe ich die Sache auch falsch an, ggf. habt ihr ja einen Tipp für mich.
Viele Grüße, derOptimist
ich habe einmal eine Frage zu DataAdaptern. Recherhiert habe ich schon, bin aber leider bis jetzt noch nicht auf eine Lösung gekommen.
Ich möchte den Inhalt eines Datagridviews in 2 identische Tabellen von 2 Datenbanken schreiben.
[highlight=vbnet]
Dim conn_string As String = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=" & DBPassword & ";Data Source=" & Datenbankpfad
Dim query As String
query = "SELECT * FROM COLUMN where id = " & ID
Main.objDataAdapterDetails = New System.Data.OleDb.OleDbDataAdapter(query, conn_string)
Main.objDataTableDetails = New DataTable()
Dim cmd As System.Data.OleDb.OleDbCommandBuilder = New System.Data.OleDb.OleDbCommandBuilder(Main.objData AdapterDetails)
Main.objDataAdapterDetails.FillSchema(Main.objData TableDetails, SchemaType.Source)
Main.objDataAdapterDetails.Fill(Main.objDataTableD etails)
Main.dgv.DataSource = (Main.objDataTableDetails)
'.... Hier kommen die Benutzeränderungen
Main.objDataAdapterDetails.Update(Main.objDataTabl eDetails)
[/highlight]
Soweit funktioniert auch alles -> In der ersten Tabelle sind die Werte gespeichert. Nun soll in die 2. Tabelle der anderen DB gespeichert werden, das funktioniert jedoch nicht. Mein Code ist folgender:
[highlight=vbnet]
conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=" & DBPassword & ";Data Source=" & Datenbankpfad_secondDB
objDataAdapterDetails_secondDB = New System.Data.OleDb.OleDbDataAdapter(query, conn_string)
Dim cmd2 As System.Data.OleDb.OleDbCommandBuilder = New System.Data.OleDb.OleDbCommandBuilder(objDataAdapt erDetails_secondDB)
objDataAdapterDetails_secondDB.Update(Main.objData TableDetails)
[/highlight]
Bei diesem Update passiert einfach nichts, auch keine Fehlermeldung kommt hoch. Lasse ich das erste Update weg, funktioniert das zweite Update.
Meine Vermutung geht dahin, dass nach dem ersten Update in dem DataTable "objDataTableDetails" keine Änderungen mehr vorhanden sind und daher beim 2. Update nichts mehr zu schreiben gibt.
Evtl. gehe ich die Sache auch falsch an, ggf. habt ihr ja einen Tipp für mich.
Viele Grüße, derOptimist
Comment