Hallo,
ich mache zur Zeit mein Praxissemester. Meine Aufgabe ist es ein C# Programm zu schreiben mit dem ich in regelmäßigen Abständen die neuen Datensätze aus einer Access Datenbank in eine SQL Datenbank kopiere.
Ich will die Datensätze einzeln kopieren, da ich manche Felder noch ändern muss.
Ich habe es schon mit typisierten Datensätzen versucht, aber es klappt leider immer noch nicht richtig.
Über den Commandbuilder habe ich Kommandos für Update und Insert generieren lassen.
Einen neuen Datensatz kann ich aus der Access DB in meine SQL Testdatenbank einfügen:
[highlight=c#]
(sDS=SQL-Dataset, aDS = AccessDS)
DataRow newrow = sDS.Tables[0].NewRow();
newrow[0] = aDS.Tables[0].Rows[0][0];
newrow[1] = aDS.Tables[0].Rows[0][1];
newrow[2] = aDS.Tables[0].Rows[0][2];
newrow[3] = aDS.Tables[0].Rows[0][3];
newrow[4] = aDS.Tables[0].Rows[0][4];
sDS.Tables[0].Rows.Add(newrow);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(sqlDA);
sqlDA.InsertCommand = cmdBuilder.GetInsertCommand();
sqlDA.UpdateCommand = cmdBuilder.GetUpdateCommand();
[/highlight]
Leider habe ich es nicht geschafft eine Schleife für 2 oder mehrere Datensätze zu schreiben, weil "newrow" nicht mehrfach verwendet werden kann.
Mit der foreach Schleife schreibt er mir immer den ersten Datensatz x mal in die SQL DB und mit der For-Schleife kommt immer der Fehler, dass newrow schon verwendet wird.
Ausserdem habe ich das Problem, das bei manchen Versuchen die Fehlermeldung kommt, dass die Spalte in die ich schreiben will noch nicht auf der SQL DB existiert.
Über den Befehl "ImportRow" habe ich es auch nicht geschafft.
Ich suche seit Tagen in Google und Foren und habe leider nichts passenden gefunden.
Für Lösungsansätze wäre ich sehr dankbar.
mfg Mark
ich mache zur Zeit mein Praxissemester. Meine Aufgabe ist es ein C# Programm zu schreiben mit dem ich in regelmäßigen Abständen die neuen Datensätze aus einer Access Datenbank in eine SQL Datenbank kopiere.
Ich will die Datensätze einzeln kopieren, da ich manche Felder noch ändern muss.
Ich habe es schon mit typisierten Datensätzen versucht, aber es klappt leider immer noch nicht richtig.
Über den Commandbuilder habe ich Kommandos für Update und Insert generieren lassen.
Einen neuen Datensatz kann ich aus der Access DB in meine SQL Testdatenbank einfügen:
[highlight=c#]
(sDS=SQL-Dataset, aDS = AccessDS)
DataRow newrow = sDS.Tables[0].NewRow();
newrow[0] = aDS.Tables[0].Rows[0][0];
newrow[1] = aDS.Tables[0].Rows[0][1];
newrow[2] = aDS.Tables[0].Rows[0][2];
newrow[3] = aDS.Tables[0].Rows[0][3];
newrow[4] = aDS.Tables[0].Rows[0][4];
sDS.Tables[0].Rows.Add(newrow);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(sqlDA);
sqlDA.InsertCommand = cmdBuilder.GetInsertCommand();
sqlDA.UpdateCommand = cmdBuilder.GetUpdateCommand();
[/highlight]
Leider habe ich es nicht geschafft eine Schleife für 2 oder mehrere Datensätze zu schreiben, weil "newrow" nicht mehrfach verwendet werden kann.
Mit der foreach Schleife schreibt er mir immer den ersten Datensatz x mal in die SQL DB und mit der For-Schleife kommt immer der Fehler, dass newrow schon verwendet wird.
Ausserdem habe ich das Problem, das bei manchen Versuchen die Fehlermeldung kommt, dass die Spalte in die ich schreiben will noch nicht auf der SQL DB existiert.
Über den Befehl "ImportRow" habe ich es auch nicht geschafft.
Ich suche seit Tagen in Google und Foren und habe leider nichts passenden gefunden.
Für Lösungsansätze wäre ich sehr dankbar.
mfg Mark
Comment