Hallo Forumsmitglieder,
ich habe folgendes Problem.
Ich möchte 2 Datenbanken/Tabellen abgleichen.
Es handelt sich dabei um 2 Tabellen (Artikelstammdaten) bei denen ich von der Master DB den Bestand in eine andere Tabelle schreiben möchte.
Das Problem welches auftritt ist, dass das Programm nach ca. 40.000 Datensätzen eine exeption wirft. Der Belegte RAM beträgt dann ca. 1,5GB.
Um nicht den ganzen Code zu posten hier mal ein Auszug wie ich das prinzipiell mache:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| List<string[]> Masterdaten = (from mdata in Masterdb select new string[]{mdata.Artikelnummer,mdata.Bestand}).ToList();
foreach(string[] s in Masterdaten) { Slavetabelle Datensatz = Slavetabelle.SingleOrDefault(l=>l.Artikelnummer == s[0]); Datensatz.Bestand = s[1]; Slavetabelle.SubmitChanges(); } |
Das klappt soweit einwandfrei. Warum aber baut sich jedoch der RAM so weit auf bis dann die exeption geworfen wird??
Meine Vermutung ist das die Variable Datensatz intern nicht gelöscht bzw. frei gegeben wird.
Das ist aber nur meine Vermutung.
Habt Ihr eine Idee oder einen Tip oder gar die Lösung für mich?
Ich bedanke mich schon mal für eure Mühe
Moderiert von
Th69: C#-Tags hinzugefügt