Updaten in Microsoft SQL Datenbank mit VB.NET

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von JoJo129.

    Updaten in Microsoft SQL Datenbank mit VB.NET

    Hallo Leute, ich mal wieder.
    Ich hab ein kleines Problem, weiß aber nicht woran es liegt, da mir auch keine Fehlermeldung gezeigt wird.
    Hier einmal mein Code:

    Quellcode

    1. Sub Update()
    2. Dim myConnectionString As String
    3. myConnectionString = New SqlConnectionStringBuilder() With {
    4. .DataSource = "DS",
    5. .UserID = "ID",
    6. .Password = "PW",
    7. .InitialCatalog = "Passwort_Generator"
    8. }.ToString()
    9. ' Auswahl treffen
    10. Dim X As String = ""
    11. If Form1.cb2.Checked Then
    12. X = Form1.cb2.Text
    13. ElseIf Form1.cb3.Checked Then
    14. X = Form1.cb3.Text
    15. ElseIf Form1.cb1.Checked Then
    16. MsgBox("ID kann nicht geändert werden!")
    17. ElseIf Form1.cb4.Checked Then
    18. MsgBox("Bitte einselnd ändern!")
    19. End If
    20. Dim conn As New SqlConnection(myConnectionString)
    21. Try
    22. conn.Open()
    23. Dim myAdapter As New SqlDataAdapter
    24. Dim command As New SqlCommand("UPDATE passwoerter SET " & X & " = '" & Form3.tb2.Text & "' WHERE " & X & " = '" & Form3.tb1.Text & "'", conn)
    25. command.ExecuteNonQuery()
    26. Catch ex As Exception
    27. MessageBox.Show(ex.Message)
    28. Finally
    29. If conn.State = ConnectionState.Open Then
    30. conn.Close()
    31. conn.Dispose()
    32. End If
    33. End Try


    Mein Problem, wenn ich eine Angabe ändern möchte läuft das Programm zwar weiter, aber meine Angaben werden in der Datenbank nicht mit übernommen.

    Über Antworten würd ich mich sehr freuen :thumbsup:

    JoJo129 schrieb:

    Dim command As New SqlCommand("UPDATE passwoerter SET " & X & " = '" & Form3.tb2.Text & "' WHERE " & X & " = '" & Form3.tb1.Text & "'", conn)

    Diese Codezeile erscheint mir doch etwas suspekt.
    1. Welchen Datensatz willst Du ändern? Was steht bei Where genau drin?
    2. Da steht, Du schreibst was in einen Tabelle Passwoerter. Wie werden die Passworte denn gespeichert? ich hoffe doch nicht in Klartext.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).

    INOPIAE schrieb:

    Welchen Datensatz willst Du ändern? Was steht bei Where genau drin?


    Also bei where ist von einer checkbox schon der cmd, jenachdem was man ändern möchte, z.B. Benutzername. Da klickt man dann die checkbox an und das wird in den Code eingeführt, die Textboxen sind dann die Änderungen.

    Da steht, Du schreibst was in einen Tabelle Passwoerter. Wie werden die Passworte denn gespeichert? ich hoffe doch nicht in Klartext.


    Also ich selbst schreib da kein Passwort rein, das soll selbst generiert werden. Aber das mach ich noch.
    Bilder
    • Passwort Generator 23.12.2022 13_16_56.png

      8,63 kB, 804×446, 59 mal angesehen

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

    Wie willst Du bei diesem Ansatz richtig stellen, dass genau die Daten geändert werden, die Du ändern willst?

    Du hast 2 Einträge mit dem gleichen Benutzernamen aber unterschiedlichen URL? Soll dann der Benutzernamen beider URL geändert werden?

    Eigentlich legt man so ein Problem einen eindeutigen Schlüssel an, der dann auch in der WHERE-Klausel genutzt wird.

    Was machst Du, wenn der Nutzer 2 Diener Checkboxen ausfüllt?
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Sorry das jetzt erst eine Antwort kommt und Frohes Neues
    Ich hab das Problem jetzt schon behoben, musste nur etwas an dem Code umschreiben und seit dem klappt es.
    Trotzdem danke für eure Zeit.