none
DataTable.Merge RRS feed

  • 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

    Dienstag, 28. Oktober 2014 14:42

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
    Dienstag, 28. Oktober 2014 15:14
    Moderator

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
    Dienstag, 28. Oktober 2014 15:14
    Moderator
  • Vielen Dank Stefan,

    das war's.

    Bei anderen Tabellen ging es, bei einer hatte ich vergessen den Primärschlüssel zu setzen.

    Grüsse Peter

    Dienstag, 28. Oktober 2014 16:00