Hi,
ich bin nochziemlich frisch in der .NET Klamotte und bin momentan ziemlich am verzweifeln.
Folgende Aufgabenstellung:
Ich möchte auf Daten von zwei verschiedenen Programmen zugriefen. Das eine Programm basiert auf einer Access Datenbank und das andere auf einer SQLDatenbank. Beide Datenbanken haben eine Tabelle mit Adressdaten. Ich möchte nun diese Daten vergleichen und aktualisieren. Dazu habe ich progrämmchen geschrieben. Dieses Programm kann ich konfigurieren. Ich kann so einstellen welche Daten ich aktualisieren möchte und die Verbindungsdaten angeben. Soweit alles wunderbar.
Meine Herangehensweise:
Ich stelle die Datenbankverbindungen zu den jeweiligen Datenbanken her.
Ich ziehe mir die Daten in ein DataSet.
Dann schaue ich für jedenDatensatz nach, ob dieser in der zu aktualisierenden Tabelle vorhanden ist oder nicht.
Ist er nicht vorhanden erzeuge ich einen neuen Datensatz.
Ist er vorhanden schaue ich ob es unterschiede gibt.
Sind Unterschiede vorhanden aktualisiere ich die Daten.
Sind keine Unterschiede vorhanden mache ich mit dem nächsten Datensatz weiter.
Mein bisher erreichtes Ziel:
Ich habe ein Programm mit dem ich die Konfiguration ändern kann.
Anhand dieser Konfigurationen wird eine Verbindung zur Access datenbank mit OleDb aufgebaut und zum SQL Server mit ODBC.
Dann erzeuge ich ein SQLDataAdapter, ein OleDbCommand, ein OdbcCommand und jeweils ein Dataset.
Das ganze sieht dann so aus:
Wie man sieht habe ich auch schon die DataReader. Aber ich habe keine Ahnung wie ich weiter vorgehen soll... Gibts es nicht irgend eine Möglichkeit zwei Datasets miteinander zu vergleichen? Und die Unterschiede in einem DatSet anzupassen und das DataSet dann zurückzuspielen? Oder gehe ich die Sache Komplett falsch an?
Ich hoffe Ihr könnt mir helfen... Bin für jede Anregung dankbar.
LG Loewchen
ich bin nochziemlich frisch in der .NET Klamotte und bin momentan ziemlich am verzweifeln.
Folgende Aufgabenstellung:
Ich möchte auf Daten von zwei verschiedenen Programmen zugriefen. Das eine Programm basiert auf einer Access Datenbank und das andere auf einer SQLDatenbank. Beide Datenbanken haben eine Tabelle mit Adressdaten. Ich möchte nun diese Daten vergleichen und aktualisieren. Dazu habe ich progrämmchen geschrieben. Dieses Programm kann ich konfigurieren. Ich kann so einstellen welche Daten ich aktualisieren möchte und die Verbindungsdaten angeben. Soweit alles wunderbar.
Meine Herangehensweise:
Ich stelle die Datenbankverbindungen zu den jeweiligen Datenbanken her.
Ich ziehe mir die Daten in ein DataSet.
Dann schaue ich für jedenDatensatz nach, ob dieser in der zu aktualisierenden Tabelle vorhanden ist oder nicht.
Ist er nicht vorhanden erzeuge ich einen neuen Datensatz.
Ist er vorhanden schaue ich ob es unterschiede gibt.
Sind Unterschiede vorhanden aktualisiere ich die Daten.
Sind keine Unterschiede vorhanden mache ich mit dem nächsten Datensatz weiter.
Mein bisher erreichtes Ziel:
Ich habe ein Programm mit dem ich die Konfiguration ändern kann.
Anhand dieser Konfigurationen wird eine Verbindung zur Access datenbank mit OleDb aufgebaut und zum SQL Server mit ODBC.
Dann erzeuge ich ein SQLDataAdapter, ein OleDbCommand, ein OdbcCommand und jeweils ein Dataset.
Das ganze sieht dann so aus:
Code:
if (SQLconn.State == ConnectionState.Open && AccessConn.State == ConnectionState.Open) { // SQLDataAdapter erzeugen für Cobra Tabelle und für W und C SqlDataAdapter CAdapter = new SqlDataAdapter(); SqlDataAdapter WAdapter = new SqlDataAdapter(); // Tabelle erstellen mit Namen Cobra und WinLine CAdapter.TableMappings.Add("Table", "C"); WAdapter.TableMappings.Add("Table", "W"); // Commands zum auslesen und schreiben in Tabelle OleDbCommand Command = new OleDbCommand("Select * from Adresses", AccessConn); OdbcCommand Wcommand = new OdbcCommand("Select * From dbo.t055", SQLconn); CCommand.CommandType = CommandType.Text; Wcommand.CommandType=CommandType.Text; // DataSet füllen DataSet CDs = new DataSet("C"); DataSet WDs = new DataSet("W"); CAdapter.Fill(CDs); WAdapter.Fill(WDs); DataTableReader CobraReader = CobraDs.CreateDataReader(); do { // CobraReader } while (CobraReader.NextResult()); DataTableReader WinLineReader = WinLineDs.CreateDataReader(); do { // WinLineReader } while (WinLineReader.NextResult()); }
Ich hoffe Ihr könnt mir helfen... Bin für jede Anregung dankbar.
LG Loewchen
Comment