Vergangenes Datum Befehl

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Schnickalodeon.

    Vergangenes Datum Befehl

    Hallo Leute,

    ich möchte alle Datensätze aus einer DB auslesen in der in einer Bestimmten Spalte das heutige oder ein Vergangenes Datum steht. Bist jetzt habe ich leider nur das mit dem heutigen Datum hinbekommen. Gibt es für die Vergangenen Daten einen befehl. Mit < hat es nicht funktioniert.

    VB.NET-Quellcode

    1. Dim TodayIs As Date = Date.Today
    2. Using con As New SqlConnection("Server=NICK-PC\SQLEXPRESS;Database=Fahrschüler;Trusted_Connection=Yes;")
    3. con.Open()
    4. Dim FahrschuelerUerberfaellig As New DataGridView
    5. Dim Table As New DataTable("Fahrschüler")
    6. Dim da As New SqlDataAdapter("SELECT* FROM Fahrschüler WHERE (Erinnerungsdatum = '" & TodayIs & "')", con) '
    7. da.Fill(Table)
    8. FahrschuelerUerberfaellig.DataSource = Table
    9. FahrschuelerUerberfaellig = Me.dgvFahrschueler_ueberfaellig
    10. Me.dgvFahrschueler_ueberfaellig.DataSource = Table
    11. con.Close()
    12. End Using


    Vielen Dank für eure Aufmerksamkeit :)

    Schnickalodeon
    Dann hast Du entweder nen falschen Datentyp für das Datum gewählt oder ein falsches Format, denn "<" sollte prima funktionieren.
    Da bräuchte man mehr Infos.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also für das Datum in der DB habe ich nchar(50) verwendet.

    Mein Code bis jetzt

    VB.NET-Quellcode

    1. ​[b][/b] Dim TodayIs As Date = Date.Today
    2. Using con As New SqlConnection("Server=NICK-PC\SQLEXPRESS;Database=Fahrschüler;Trusted_Connection=Yes;")
    3. con.Open()
    4. Dim FahrschuelerUerberfaellig As New DataGridView
    5. Dim Table As New DataTable("Fahrschüler")
    6. Dim da As New SqlDataAdapter("SELECT* FROM Fahrschüler WHERE (Erinnerungsdatum = '" & TodayIs & "') OR (Erinnerungsdatum=< '" & TodayIs & "'", con) '
    7. da.Fill(Table)
    8. FahrschuelerUerberfaellig.DataSource = Table
    9. FahrschuelerUerberfaellig = Me.dgvFahrschueler_ueberfaellig
    10. Me.dgvFahrschueler_ueberfaellig.DataSource = Table
    11. con.Close()
    12. End Using[b][/b]


    Brauchst du sonst noch Informationen?
    )m
    In der DB. Und im VB-Client nimmst Du DateTime.Now.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wenn ich DateTime mache dann schreibt er doch auch die Zeit hinein, und wenn dann der richtige (gleiche) Tag ist aber noch nicht die Zeit, erinnert er mich doch nicht. Das ist dann doch falsch oder überprüft er nur das Datum, auch wenn die Zeit mit im feld steht?

    Ist meine Syntax denn richtig?

    VB.NET-Quellcode

    1. ​Dim da As New SqlDataAdapter("SELECT* FROM Fahrschüler WHERE (Erinnerungsdatum = '" & TodayIs & "') OR (Erinnerungsdatum=< '" & TodayIs & "')", con)

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

    Achso, Du willst nur das, das war nicht direkt ersichtlich.
    Ja und was passiert jetzt wenn Du als Typ mal DATETIME verwendest?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Was geht nicht?
    Wie sieht Dein genauer Code jetzt aus? Und Du hast auch wirklich den Typ der Spalte geändert?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    VB.NET-Quellcode

    1. Private Sub bLöschen_Click(sender As Object, e As EventArgs) Handles bLöschen.Click
    2. Dim löschen_nachname As String = Me.tbNachname_löschen.Text
    3. Dim löschen_vorname As String = Me.tbVorname_löschen.Text
    4. Dim löschen_id As String = Me.nudID.Value
    5. sqlCon.Open()
    6. Dim Ds As New DataSet
    7. Dim Da As New SqlClient.SqlDataAdapter("DELETE FROM Fahrschüler WHERE (Vorname='" & löschen_vorname & "') OR (Nachname='" & löschen_nachname & "') OR (ID='" & löschen_id & "')", sqlCon)
    8. Da.Fill(Ds, "Fahrschüler")
    9. sqlCon.Close()
    10. MessageBox.Show("Fahrschüler wurden gelöscht")
    11. End Sub


    in der DB habe ich als Type date festgelegt
    ich sags immer wieder: lernt erstmal Databinding, bevor ihr euch auf eine DB stürzt! Deine Codes sind samtnsonders grauselig.
    Du verwendest keine DbParameter, kein typisiertes Dataset, aber untypisierte in rauhen Mengen - so viel der User klicksen kann, und nun willst du mit einem Delete-Command ein Dataset befüllen!

    Datenbänkerei ist viel Stoff, ich empfehle, ihn sich in überschaubaren Häppchen, und in der richtigen Reihenfolge einzuverleiben. Und der DB-Zugriff ist das letzte Häppchen in der Reihenfolge.
    Mit obigem Ansatz sind die gewaltigen Möglichkeiten von Ado.Net, wie in vier Views-Videos oberflächlich angerissen, komplett verbaut.