Wie kann ich bei Dataset.Tables.Select() "Contains" anwenden?

  • VB.NET

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

    Wie kann ich bei Dataset.Tables.Select() "Contains" anwenden?

    Hallo,

    gibt es für Dataset.Tables(0).Select("") einen "Contains" Operator?

    Ich möchte wie folgt vorgehen:

    Voller Name = "Dieter Schmidt"
    Ich möchte mir nun ausgeben lassen, wie viele Rows es gibt, die den String "Schmidt'" enthalten.

    VB.NET-Quellcode

    1. globalDS.Tables(1).Select("[Name] CONTAINS 'Schmidt'").Count


    Obriges Beispiel funktioniert so nicht, weil es anscheinend keinen "Contains" Operator gibt.

    Gibt es eine Möglichkeit die dem Operator "Contains" ähnelt?

    Ich hoffe ihr habe verstanden was ich meine.

    Schönen Abend und vielen Dank!

    Edit:
    Das Problem konnte ich lösen. Es funktioniert mit:

    VB.NET-Quellcode

    1. globalDS.Tables(1).Select("[Name] LIKE '%Schmidt%'").Count

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „whatever“ ()

    Habe ein neues Problem, bei dem mir vielleicht jemand helfen kann.

    Ich habe eine Column mit Daten im folgenden Format: 11.11%

    Nun will ich mit Hilfe von Datatable.Select filtern und Reihen finden die zB. Inhalte haben die über 20% liegen.

    VB.NET-Quellcode

    1. dt.Select("[XXX] > '20.00%'")

    Obriger Code liefert auch Reihen mit Inhalt von zB. 8.10%

    Das funktioniert nicht. Es liegt wohl am '%' Zeichen nehme ich an?
    Da die Datatable aber sehr sehr groß ist, kommt es kaum in Frage mit Hilfe einer Schleife durch die einzelnen Reihen durchzugehen und das % zu entfernen.

    Gibt es eine Möglichkeit entweder schnell (ohne langsame Schleife) das Format des Zelleninhalts zu ändern? zB von 11.11% zu 0,1111?
    Oder mit Hilfe von Datatable.Select gleich zu filtern?

    Vielen vielen Dank!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „whatever“ ()

    Das ist ein Designfehler. Welchen Datentyp hat diese Spalte? Wenn es String o.ä. ist, dank hast du deinen Fehler gefunden.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Hallo mrMo,
    erstmal danke für deine Antwort.

    Ja die Spalte ist ein String.
    Das Problem ist, dass ich den Datentyp im Nachhinein nicht ändern kann oder?
    Also zB., ohne langsame Schleife, von String 11.11% auf Decimal 0,1111?
    Oder gibt es eine Möglichkeit den Datentyp im Nachhinein (nachdem die Daten in die Datatable geladen wurden) zu ändern?

    Übrigens funktioniert das bei anderen Spalten mit String (im Format von zb '1') schon...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Keine Ahnung ob du das ändern kannst. Vermutlich schon. Woher kommen denn die Daten?

    Du hast hier definitiv ein Problem. Achte auch die richtigen Datenypen. Zahlen nie als String. Sondern Integer, Decimal, o.ä. Auch wenn es manchmal zu funktionieren scheint.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Ja da hast du natürlich recht.
    Die Daten kommen aus einem großen Excel file.
    Vielleicht könnte ich dort, vor dem importieren, per Range oä. den Datentyp ändern...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    whatever schrieb:

    Die Daten kommen aus einem großen Excel file.
    Vielleicht könnte ich dort, vor dem importieren, per Range oä. den Datentyp ändern.
    Ich glaub nicht, dass du meinst, was du sagst:
    Also ich glaub nicht, dass du im Excel, vor jedem Importieren in deine App, das Excel-File manipulieren willst (sodass der nächste, der das Excel öffnet sich wundert über die Veränderung).

    Ich glaube eher, du willst die betreffende Excel-Spalte in einen für deine Anwendung geeigneten Typ importieren.

    Das ist ja nicht das Ändern eines Datentyps, sondern der falsche Datentyp entsteht erst garnet.



    Für Zahlen, die prozentual dargestellt werden sollen, bzw. die mit hundertstel rechnen sollen, ist der .Net-Typ Decimal besonders geeignet.
    Einen Typ Decimal 0,1111 gibt es in .Net nicht.