2 Datagridview vergleichen im 1. nur die Einträge darstellen, die im 2. Fehlen

  • VB.NET
  • .NET (FX) 4.0

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Schoofi schrieb:

    ähnlich wie beim typisierten Dataset auf die Childrows zugreifen.
    Was heisst "ähnlich"? Es ist doch ein typDataset!

    Die Verbesserungen bewirken, dass dein Code lesbarer, wartbarer und auch bisserl performanter wird.
    Bewirken auch, dass du dich mehr darin übst, das typDataset objektorientiert zu benutzen.

    Weil mit IDs herumzufuhrwerken ist etwas, was man in Sql machen muss, nicht aber in OOP-Vb.net.

    Linq ist eine Abfragesprache, vergleichbar mit Sql, und was Abfragen angeht sogar mächtiger - aber es ist eben kein Sql, sondern ist eine objektorientierte Abfragesprache, und da braucht man keine IDs.
    Und ein typDataset ist eine Objekt-Struktur, in der die Ids eiglich keine Bedeutung haben - die sind nur erforderlich, um abspeichern zu können, und beim Laden die geladenen Objekte wieder richtig miteinander verknüpfen zu können.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ErfinderDesRades“ ()

    beim typisierten Dataset bin ich da schon auf den Geschmack gekommen, das "durchhangeln" durch Parents bzw Childs habe ich schon schätzen gelernt.
    Linq ist erstmal Neuland.
    Hast Du da eventuell noch Literaturempfehlungen ? Was ich bisher gefunden habe, reißt es nur an.
    Wieso hat er mir eigentlich bei der Datenbindung ohne ID nur die Länge des Suchbegriffes angezeigt.
    Beim durchlaufen der Linq Items hat er diese richtig angezeigt.
    Linq - Literatur weiß ich nicht. Linq hat halt ein paar Schlüsselworte, und die kann man recherchieren, und für jedes der Schlüsselworte muss man nochmal recherchieren, wie es anzuwenden ist. Ich hab Linq aus MSDN gelernt.
    Wobei ich empfehle, die Kirche im Dorf zu lassen, und nicht immer alles mit Linq lösen zu wollen, weils so schick ist.
    Die gute alte Foreach-Schleife, bei der man seine Daten in einer List(Of T) einsammelt, hat insbesondere bei komplizierteren Bedingungen durchaus noch ihre Berechtigung (und ist sogar performanter).


    Schoofi schrieb:

    Wieso hat er mir eigentlich bei der Datenbindung ohne ID nur die Länge des Suchbegriffes angezeigt.
    Hat mit der ID nix zu tun.
    Der Select-Abschnitt generiert anonyme Datentypen, wenn mehrere Eigenschaften (Spalten) selektiert werden. Wird nur eine Spalte selektiert, so erkennt der Compiler deren Datentyp und generiert nix anonymes.
    Er erkennt also Datentyp String, ja, und die String-Klasse hat keine Properties ausser .Length.

    Das ist oft ein Denkfehler, dass man Databinding an primitive Datentypen versucht - etwa an String oder an Integer oder sowas. Aber primitive Datentypen haben gar keine Properties, sondern sind normalerweise Properties anderer Datentypen.
    Databinding will aber Properties haben - vor allem Dgv definiert seine Spalten aus Properties.
    Daher, wenn du einen anonymen Datentyp definierst, kann das Dgv dessen Properties anzeigen - etwa den String.

    probier so:

    VB.NET-Quellcode

    1. ... Select Suchbegriff = s.Suchbegriff