Benutzer mit den meisten Antworten
DataTable.Merge

Frage
-
Hallo zusammen,
verstehe ich da etwas nicht richtig?
Ich will zwei DataTable mit Merge() zusammenführen.
Allerdings war ich der Meinung, dass wenn die IDs der jeweiligen Rows gleich sind, bekomme ich die Row nur ein mal.Ich habe in beiden Tables meisst den identischen Inhalt (ID und Felder), ich möchte erreichen, das nur die Row die nicht in beiden Tables ist, übernommen wird. Im Moment habe ich alles doppelt.
Hat mir jemand eine Antwort?
Gruss Peter
Antworten
-
Hallo Peter,
lies dir mal die Beschreibung zu Merge nochmal genau durch.
http://msdn.microsoft.com/de-de/library/fk68ew7b.aspx
Für dich inbesondere interessant dürfte das hier sein:
Beim Zusammenführen einer neuen Quell-DataTable mit dem Ziel werden Quellzeilen mit dem DataRowState-Wert Unchanged, Modified oder Deleted mit den Zielzeilen zusammengeführt, die dieselben Primärschlüsselwerte enthalten. Quellzeilen mit dem DataRowState-Wert Added werden neuen Zielzeilen zugeordnet, die dieselben Primärschlüsselwerte wie die neuen Quellzeilen aufweisen.
Wenn deine DataTables also keinen Primärschlüssel haben (wovon ich mal ausgehen) kann die Merge Methode auch nicht wissen, nach welchen Kriterien Du filtern willst.
Angeben kannst Du den Primärschlüssel über die PrimaryKey Eigenschaft.
http://msdn.microsoft.com/de-de/library/system.data.datatable.primarykey.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert peter haus Dienstag, 28. Oktober 2014 15:58
Alle Antworten
-
Hallo Peter,
lies dir mal die Beschreibung zu Merge nochmal genau durch.
http://msdn.microsoft.com/de-de/library/fk68ew7b.aspx
Für dich inbesondere interessant dürfte das hier sein:
Beim Zusammenführen einer neuen Quell-DataTable mit dem Ziel werden Quellzeilen mit dem DataRowState-Wert Unchanged, Modified oder Deleted mit den Zielzeilen zusammengeführt, die dieselben Primärschlüsselwerte enthalten. Quellzeilen mit dem DataRowState-Wert Added werden neuen Zielzeilen zugeordnet, die dieselben Primärschlüsselwerte wie die neuen Quellzeilen aufweisen.
Wenn deine DataTables also keinen Primärschlüssel haben (wovon ich mal ausgehen) kann die Merge Methode auch nicht wissen, nach welchen Kriterien Du filtern willst.
Angeben kannst Du den Primärschlüssel über die PrimaryKey Eigenschaft.
http://msdn.microsoft.com/de-de/library/system.data.datatable.primarykey.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert peter haus Dienstag, 28. Oktober 2014 15:58