SQLite INSERT & Update Befehl hinterinander ausführen + Message Text

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von tuvok.

    SQLite INSERT & Update Befehl hinterinander ausführen + Message Text

    Hallo Liebe Leute ... ich benötige mal wieder Eure Hilfe...

    1. ich möchte einen Insert und einen Update befehl mit der selben Connection ausführen .. tu ich das mit jedem Befehl einzeln funktioniert das ganze..
    mache ich aber beide nimmt er nur den letzten also den Update Command.. wie kann ich das ändern, dass ich beide ausgeführt bekomme?
    Zeile 7-13 bzw Zeile 14

    2. im Moment gibt es keine Fehler aber wenn es einen Fehler gibt, und das Programm weiter läuft kommt danach dennoch das die Daten in der Datenbank eingepflegt sind .. ich hab die Messagebox falsch platziert aber ich weiß nicht so recht wo ich die sonst hinmachen soll *verwirrt*
    Zeile 24


    VB.NET-Quellcode

    1. Private Sub Neu_Btn_Click(sender As Object, e As EventArgs) Handles Neu_Btn.Click
    2. 'Pflichtfeld ausfüllen
    3. If Trim(Name_Box.Text) = "" Or Trim(Nummer_Box.Text) = "" Or Trim(Abteilung_Box.Text) = "" Or Trim(Location_Box.Text) = "" Then
    4. MessageBox.Show("Bitte Alle Pflichtfelder ausfüllen", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)
    5. 'Wenn alles OK ist Datenbank Eintrag machen
    6. Else
    7. cmd.CommandText = "INSERT INTO tbl_Namen(Name, Nummer, NummerExt, Abteilung, AbteilungUnter, Location) VALUES ('" &
    8. Name_Box.Text & "','" &
    9. Nummer_Box.Text & "', '" &
    10. NummerExt_Box.Text & "', '" &
    11. Abteilung_Box.Text & "', '" &
    12. Abteilng_Unter_Box.Text & "', '" &
    13. Location_Box.Text & "')"
    14. cmd.CommandText = "UPDATE tbl_Datum Set Datum = '" & Date.Today & "' Where rowid = '" & 1 & "'"
    15. Try
    16. con.Open()
    17. cmd.ExecuteNonQuery()
    18. con.Close()
    19. Catch ex As Exception
    20. MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    21. Finally
    22. con.Close()
    23. End Try
    24. MessageBox.Show("Neuer Datensatz wurde in der Datenbank angelegt", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)
    25. End If
    26. End Sub



    Danke für die Hilfe

    Die Farbe "Rot" gehört der Moderation. => Farbe geändert. ~Trade

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

    Hier nur auf die Schnelle - bevor ich ins Bett gehe - ein verbesserter Struktur-Vorschlag - da gäbe es aber sicher noch einiges andere - aber das wesentliche sollte dabei sein.

    Das wesentliche ist natürlich, das "cmd.ExecuteNonQuery()" zweimal - einmal für "Insert" und einmal für "Update" ausgeführt wird!

    VB.NET-Quellcode

    1. Private Sub Neu_Btn_Click(sender As Object, e As EventArgs) Handles Neu_Btn.Click
    2. 'Pflichtfeld ausfüllen
    3. If Trim(Name_Box.Text) = "" Or Trim(Nummer_Box.Text) = "" Or Trim(Abteilung_Box.Text) = "" Or Trim(Location_Box.Text) = "" Then
    4. MessageBox.Show("Bitte Alle Pflichtfelder ausfüllen", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)
    5. 'Wenn alles OK ist Datenbank Eintrag machen
    6. Else
    7. Try ' und natürlich kein TryCast
    8. con.Open()
    9. cmd.CommandText = "INSERT INTO tbl_Namen(Name, Nummer, NummerExt, Abteilung, AbteilungUnter, Location) VALUES ('" &
    10. Name_Box.Text & "','" &
    11. Nummer_Box.Text & "', '" &
    12. NummerExt_Box.Text & "', '" &
    13. Abteilung_Box.Text & "', '" &
    14. Abteilng_Unter_Box.Text & "', '" &
    15. Location_Box.Text & "')"
    16. cmd.ExecuteNonQuery()
    17. cmd.CommandText = "UPDATE tbl_Datum Set Datum = '" & Date.Today & "' Where rowid = '" & 1 & "'"
    18. cmd.ExecuteNonQuery()
    19. MessageBox.Show("Neuer Datensatz wurde in der Datenbank angelegt", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)
    20. Catch ex As Exception
    21. MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    22. Finally
    23. con.Close()
    24. End Try
    25. End If
    26. End Sub


    *verwirrt*

    Hhmm an welcher Krankheit litt Tuvok in StarTrek Voyager nochmals?

    Edit: @tuvok da hat @ErfinderDesRades natürlich vollkomen recht in Post 5 - als ich den Code zum leichten umstrukturieren in Visual Studio geladen habe, da hat die IDE ziemlich rumgezickt, weil bei mir ja alle Deine Controls etc. nicht definiert sind - von daher natürlich nur Try und nicht TryCast

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Thias“ ()

    Hallo @ErfinderDesRades,
    danke für deine Info, aber ich habe damit noch nicht gearbeitet und wollte nur ein kleines Tool auf die schnelle bauen..
    @Thias
    danke aber da stimmt was mit dem Try Cast nicht

    PS: tuvok hatte ein neurologisches Problem was zu Konzentrationsschwäche führen kann und später zu Geistigen Verwirrungen :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „tuvok“ ()

    ich würde das mal so probieren, das muss aber noch auf auf SQLite umgeschrieben werden...

    VB.NET-Quellcode

    1. Private Sub Neu_Btn_Click(sender As Object, e As EventArgs) Handles Neu_Btn.Click
    2. 'Pflichtfeld ausfüllen
    3. Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\..........")
    4. Dim cmd As New OleDbCommand
    5. If Trim(Name_Box.Text) = "" Or Trim(Nummer_Box.Text) = "" Or Trim(Abteilung_Box.Text) = "" Or Trim(Location_Box.Text) = "" Then
    6. MessageBox.Show("Bitte Alle Pflichtfelder ausfüllen", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)
    7. 'Wenn alles OK ist Datenbank Eintrag machen
    8. Else
    9. Try
    10. con.Open()
    11. cmd.CommandText = "INSERT INTO tbl_Namen(Name, Nummer, NummerExt, Abteilung, AbteilungUnter, Location) VALUES ('" &
    12. Name_Box.Text & "','" &
    13. Nummer_Box.Text & "', '" &
    14. NummerExt_Box.Text & "', '" &
    15. Abteilung_Box.Text & "', '" &
    16. Abteilng_Unter_Box.Text & "', '" &
    17. Location_Box.Text & "')"
    18. cmd.ExecuteNonQuery()
    19. Dim cmd1 As New OleDbCommand
    20. cmd1.CommandText = "UPDATE tbl_Datum Set Datum = '" & Date.Today & "' Where rowid = '" & 1 & "'"
    21. cmd1.ExecuteNonQuery()
    22. con.Close()
    23. MessageBox.Show("Neuer Datensatz wurde in der Datenbank angelegt", String.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information)
    24. Catch ex As Exception
    25. MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    26. End Try
    27. End If
    28. End Sub

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