SQLAbfrage mittels Datetimepicker

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Schwakowiak.

    SQLAbfrage mittels Datetimepicker

    Hallo liebe Leute,
    ich habe ein kleines Problem.
    In meiner From habe ich zwei Datetimepicker (datestart und dateend).
    In einer SQLAbfrage würde ich gerne diese zwei Datumsauswahlen als WHERE Klause verwenden.

    SQL-Abfrage

    1. WHERE aufnahme BETWEEN '@Von' AND '@Bis'


    das ganze übergebe ich per SQLParameter

    VB.NET-Quellcode

    1. Dim startdatum As New SqlParameter("@Von", SqlDbType.Date)
    2. Dim enddatum As New SqlParameter("@Bis", SqlDbType.Date)
    3. startdatum.Value = dateStart.SelectedDate.Value.Date
    4. enddatum.Value =dateEnde.SelectedDate.Value.Date
    5. _sqlDataAdapter.SelectCommand.Parameters.Add(startdatum)
    6. _sqlDataAdapter.SelectCommand.Parameters.Add(enddatum)


    Anschließend wird ein Dataset gefüllt. Dabei tritt eine Exception auf:

    -> Fehler beim Konvertieren einer Zeichenfolge in den smalldatetime-Datentyp.


    Ich denke es liegt am Datumsformat.
    Der SQL-Server speichert das in folgendem Format:
    yyyy-MM-dddd hh:mm:ss
    Beispiel: 2016-01-25 13:00:00

    Vielen Dank!
    also mit solchen Code-Fetzen

    SQL-Abfrage

    1. WHERE aufnahme BETWEEN '@Von' AND '@Bis'

    VB.NET-Quellcode

    1. .fill(DATASET)
    kann glaub niemand was anfangen.

    ach, wo ich den Sql-Fetzen anguck: wieso sind die Parameter-Platzhalter gequoted?
    vlt. versucht er da das '@Von' als String auszuwerten, weils in Quotes ist.
    Hallo Erfinder,
    es hat tatsächlich an den Quotes gelegen! Ich habe sie entfernt und zusätzlich den Datentyp des Feldes auf datetime2 gesetzt.
    Zudem habe ich den SqlDBType mit in dem SQLParameter aufgenommen

    VB.NET-Quellcode

    1. Dim startdatum As New SqlParameter("@Von", SqlDbType.DateTime2)
    2. Dim enddatum As New SqlParameter("@Bis", SqlDbType.DateTime2)


    Vielen Dank ! :)