Suchen in einem DataGridView

  • VB.NET

Es gibt 48 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    Suchen in einem DataGridView

    Guten Tag,

    ich bin auf der Suche nach einer speziellen Funktion.
    Es gibt ja viele Snippets in denen gezeigt wird wie man sucht und dann das gesuchte markiert.

    Ich suche allerdings etwas anderes.

    Ich habe ein DataGridView mit ~11.000 Reihen, nun möchte ich darüber eine Textbox haben und wenn man nun in diese z.B. "Peter" eingibt - er alle einträge unsichtbar macht und nur die Einträge die in der 3 Spalte "Peter" enthalten anzeigt.

    Wenn man nun die Textbox wieder leer macht, sollen alle Einträge wieder vorhanden sein.
    Die Lösung würde ich dann in eine TextChanged Ereignis einfügen.

    Ich hoffe ich habe mich relativ verständlich ausgedrückt.

    Gruß
    Ich habe ein DataGridView mit ~11.000 Reihen, nun möchte ich darüber eine Textbox haben und wenn man nun in diese z.B. "Peter" eingibt - er alle einträge unsichtbar macht und nur die Einträge die in der 3 Spalte "Peter" enthalten anzeigt.
    Da würde sich aber auch sehr gut die Bindingsource.Filter-Eigenschaft anbieten...
    Ehrlich gesagt bin ich komplett überfordert gerade.
    Ich habe mal das erste Video angesehen.

    Das Problem ist einfach, das er etwas ganz anders entwirft.

    Bei mir ist der Fall, das ich ein DataGridView auf der Form habe, was zum Load Zeitpunkt mit einer einfachen txt gefüllt wird.
    Nun muss es doch auf einfache Weise möglich sein das Grid zu durchsuchen, oder?

    "ErfinderdesRades" benutzt halt so viele Dinge, die ich gar nicht benötige.
    Ist so ein Dataset denn unbedingt notwendig?
    Falls ja, muss ich mich da wohl durchhauen, ich hoffe aber mal nicht.

    Gruß
    Ehrlich gesagt weiß ich nicht wie ich meine txt Datei in das Dataset lade.
    Ich finde überall nur Tutorials wie man eine XML einliest.

    Die Zeilen der Textdatei sehen so aus:

    xxxx,yyyy,ssss,rrrrr,wwww,rrrr,tttt,zzzz,tttt,rrrr,eeee

    Davon gibt es ~11.000 Stück in der Datei.
    "ErinderdesRades" macht ja echt eine Menge Tutorials, allerdings verwirren mich manche Dinge.

    Das ist sein Code:

    VB.NET-Quellcode

    1. Private Sub LoadData(ByVal path As String)
    2. For Each fields In Array.ConvertAll(File.ReadAllLines(path), Function(line) line.Split(";"c))
    3. HiHaHuDts.HiHaHu.AddHiHaHuRow(fields(0), fields(1), fields(2))
    4. Next
    5. End Sub


    Aber was bitte soll ich für dieses "HiHaHuDts.HiHaHu.AddHiHaHuRow(fields(0), fields(1), fields(2))" einsetzen ?(
    Das erste soll das Dataset sein, richtig? aber was kommt bei .HiHaHu und .AddHiHaHuRow.

    Das mit den "fields", sind das meine Collumns? Ich habe ja mehr als 2, also muss ich das ergänzen bis 10?

    Gruß und danke für die Hilfe!
    Schau dir die Videos an (besonders dann Nr. 8, da wird alles erklärt, was dann HiHaHu und AddHiHaHuRow ist.

    Wie viele Werte sind bei dir in einer Zeile? Das sind dann deine Spalten, die du sinnvoll benennen solltest. Eine "Row" ist dann ein Datensatz dieser Tabelle (ich nehme an, du hast nur eine Tabelle, die dann diese Spalten hat), die aus einer Zeile der Datei eingelesen wird.
    HiHaHu ist hier der Name deiner DataTable. Und wenn du "DataSetName.DataTableName" schreibst und Punkt dahinter setzt (wenn sie natürlich schon im Dataset-Designer angelegt sind), dann wirst du sehen, dass dir "AddDataTableNameRow" angeboten wird, da kannst du einfach alle deine Werte von der Zeile reingeben. EDR hat 3 Werte, du wirst halt mehr haben. Und bei dir sind sie mit Komma getrennt, nicht mit Semikolon.
    Jetzt bin ich noch verwirrter.
    Die Daten habe ich im DGV, ja, aber wie bringt mich das weiter?

    @Sonne

    Ich denke

    "DataSet1.DataTable1.AddDataTable1Row(fields(0), fields(1), fields(2))"

    müsste passen.
    Ich bekomme nun allerdings den Fehler:
    "Fehler bei der Überladungsauflösung, da keine zugreifbare "AddDataTable1Row" diese Anzahl von Argumenten akzeptiert."
    @sonne75:
    Er hat sicher ohne Dataset sein DGV (ungebunden) befüllt. Den Code, glaub ich hat er ja.
    Jetzt müsste er sich ein typ. Dataset mit geeigneter Tabelle basteln, dass zum DGV passt und binden und dann das Dataset via DGV mit alten Code füllen (ist halt Wusteln im GUI) und dann abspeichern...
    denke, so müsste es gehen...
    @VB1963
    So sieht es aus.
    Ich habe mir ein Dataset gebastelt, mit den gleichen Spalten wie im "alten" DataGridView.
    Aber wie meinst du das nun mit binden und "mit altem Code füllen"?

    @Sonne
    Ich habe 11 Stück und alle werden auch im Designer angezeigt, eine ID Spalte habe ich nicht - brauche ich diese unbedingt?

    Ich habe halt sowas wie:

    Name - Nachname - Alter - Arbeitgeber....
    (ist nur ein Beispiel)

    Gruß
    @VB1963
    Aber genau das gleiche wird in meinem Link doch auch gemacht, es sind 3 Zeilen Code nur...

    @BadLuck
    Wenn du 11 Spalten hast, dann meckert VS doch zurecht, dass du nur 3 Argumente statt 11 einträgst oder? Wenn du keine ID hast, wie sollen sich die Einträge unterscheiden? Mach doch eine ID als Primärschlüssel dazu (im Video ist alles erklärt), es wird automatisch intern abgehandelt, du brauchst da nichts dafür tun.