SQL Datum Vergleich mit Update

  • VB.NET

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von TS_Miesbach.

    Guten Morgen zusammen!
    Nun ist das Problem gelöst, das Statement war falsch. Ich habe einfach das Statement aus dem Management Studio kopiert, was da Funktioniert hat. IN VB.Net muss aber auch noch die Datenbank angegeben werden. Auch habe ich die Formatierung von dem Systemdatum wie folgt geändert [yyyy-MM-dd HH:mm:ss] und das ganze in Hochkomma gesetzt.

    Hier mal das Schnipsel:

    VB.NET-Quellcode

    1. Dim SystemDatum As String = Now.ToString("yyyy-MM-dd HH:mm:ss")
    2. Dim con As New SqlClient.SqlConnection
    3. Dim cmd As New SqlClient.SqlCommand
    4. con.ConnectionString = My.Settings.Hackl_ManagementConnectionString 'Connect String aus den Settings holen
    5. con.Open()
    6. cmd.Connection = con
    7. cmd.CommandText = "UPDATE [Hackl_Management].[dbo].[tblHacklDekorVerwaltung] SET Mat_Status = 1 WHERE (Mat_End_Date <= " & "'" & SystemDatum & "'" & ")"
    8. cmd.ExecuteNonQuery()
    9. con.Close()



    Noch eine Frage zu den DB Parametern. Hat hier jemand für mich einen Link oder eine Buchempfehlung? Möchte mich dann doch damit beschäftigen.

    Danke noch mal für die Hilfe!

    Gruß aus München
    Toni

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

    fichz schrieb:

    Verwende bitte DB-Parameter:
    Tipp & Trick: DbParameter
    Edit: Mit Parametern in Datenbank schreiben

    Da wird dir die ganze Arbeit der Formatierung, etc. abgenommen!

    lg


    Hattest du doch schon bekommen.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Ah, also zeigt der ConnectionString nicht direkt auf die Datenbank, klar, dann weiß der Server natürlich nicht wo er nachsehen soll.

    Falls du möchtest, kannst du mit Database=DeineDatabase; im ConnectionString direkt die Datenbank angeben, auf die der Server hauptsächlich zugreifen soll.

    Außer natürlich du hast mehrere Datenbanken auf die du gleichzeitig zugreifst.
    Hallo noch mal zurück!

    Hier meine Erste Funktion mit DB Parameter. Für das Erste tut das was es soll!
    Nun meine Frage.
    Ist mein Ansatz richtig?

    VB.NET-Quellcode

    1. Dim con As New SqlClient.SqlConnection
    2. Dim cmd As New SqlClient.SqlCommand
    3. con.ConnectionString = My.Settings.Hackl_ManagementConnectionString 'Connect String aus den Settings holen
    4. cmd.Connection = con
    5. con.Open()
    6. cmd.CommandText = "UPDATE [Hackl_Management].[dbo].[tblHacklDekorVerwaltung] SET UpdateUser = @UpdateUser, UpdateDatum = @UpdateDatum WHERE Dekornummer Like @Dekornummer"
    7. cmd.Parameters.Add("@UpdateUser", SqlDbType.Text).Value = My.Settings.UserName
    8. cmd.Parameters.Add("@UpdateDatum", SqlDbType.Date).Value = System.DateTime.Now
    9. cmd.Parameters.Add("@Dekornummer", SqlDbType.Text).Value = Form_Dekore.DekornummerTextBox.Text
    10. cmd.ExecuteNonQuery()
    11. con.Close()