Prüfen ob suchtext in dgv vorhanden ist

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Prüfen ob suchtext in dgv vorhanden ist

    Hallo zusammen

    Ich muss ein Datum im DGV wie folgt suchen:

    Ich habe ein Datumsbereich zb. 1.1.2019-10.1.2019, nun muss ich prüfen ob jedes datum zwischen dem 1.1.2019 und 10.1.2019 im dgv vorkommt.
    Wie ich eine Schleife für ein Datumsbereich ausführe weis ich:

    VB.NET-Quellcode

    1. Dim startP As DateTime = start_datum
    2. Dim endP As DateTime = end_datum
    3. Dim CurrD As DateTime = startP
    4. While (CurrD <= endP)
    5. ' Mach etwas
    6. CurrD = CurrD.AddDays(1)
    7. End While


    Num müsste ich ja so etwas ähndliches wie hier programmieren:

    VB.NET-Quellcode

    1. For i As Integer = 0 To StundenDataGridView.Rows.Count - 1
    2. If StundenDataGridView.Rows(i).Cells(2).Value = CurrD Then
    3. Else
    4. MsgBox("fehlt: " & CurrD)
    5. End If
    6. Next

    Nun bei meiner Schlaufe kommt der fehler jedes mal (wenn das datum nicht überreinstimmt)

    Wie kann ich dies Umprogrammieren sodass er jedes Datum im gesammten DGV sucht und wenn es nirgends gefunden wirde eine msgbox kommt?

    Vielen dank für eure Hilfe.

    schnibli schrieb:

    VB.NET-Quellcode

    1. If StundenDataGridView.Rows(i).Cells(2).Value = CurrD Then
    Das = ist wohl der Fehler, Du solltest < oder > testen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    schnibli schrieb:

    Num müsste ich ja so etwas ähndliches wie hier programmieren:
    Naja, hast Du doch schon. Mach vor die For-Schleife ein Dim found As Boolean = False und dann nach If ... Then: found = True: Exit For. Den Else-Teil brauchst Du nicht, die Auswertung kommt nach der Schleife: If Not found Then MessageBox.Show...

    Also in Summe:

    VB.NET-Quellcode

    1. Dim found As Boolean = False
    2. For i = 0 To StundenDataGridView.Rows.Count - 1
    3. If StundenDataGridView.Rows(i).Cells(2).Value = CurrD Then found = True: Exit For
    4. Next
    5. MessageBox.Show("fehlt: " & CurrD.ToString())


    Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Stichwort MsgBox
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.