Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - DataRow klonen


Christoph1972 - So 04.10.09 09:11
Titel: DataRow klonen
Hallo zusammen,

ich stehe gerade auf der Leitung, daher schildere ich mein „Problemchen“ mal hier. Und zwar möchte ich DataRows von DataTableA nach DataTableB verschieben/kopieren. Jedoch muss die Row als neues Objekt an DataTableB übergeben werden, da die Daten aus DataTableA verworfen und neue Daten geladen werden. Bis her konnte ich nur Lösungen finden, die eine Referenz über geben. Klar, zur Not könnte ich die Values der Row kopieren und übergeben, aber das ist nicht elegant, es gibt sicher eine bessere Lösung!? Ich bin mir sicher das mal wieder einfach was übersehe……..

Über eure Anregungen und Tipps freue ich mich natürlich, wie immmer :zustimm:


JüTho - So 04.10.09 10:45

Ein Clone kommt hier seltsamerweise über ImportRow. Jürgen


Christoph1972 - So 04.10.09 10:54

Hi,

das kann nicht sein, da die verworfenen Rows aus dataTableA dann nicht mehr in der Auflistung sind.


Christoph1972 - So 04.10.09 11:11

ich habe das jetzt mal so versucht:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
foreach (DataRow dr in dataTableA.Rows)

    DataRow d = dataTableB.NewRow();
    d.ItemArray = (Object[])dr.ItemArray.Clone();
   
    dataTableB.ImportRow(d);                    
}


d wird aber nicht in dataTableA übernommen, eine Exception gibt es leider nicht. d enthält jedoch die Daten des ItemArrays von dr.


Christoph1972 - So 04.10.09 12:21

Ich habs,

ich habe mit beim klonen der Tabellenstruktur dir Datensätze gelöscht. Und zwar mit:

C#-Quelltext
1:
dataTableB = dataTableB.Colne()                    


Sorry, das ich das nicht früher bemerkt habe! War mein Fehler..... :oops:

Es geht dann natürlich mit .ImportRow

Vielen Dank!