Database Hilfe !

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von johnnyderdepp.

    Database Hilfe !

    Hallo !

    Was mach ich den Falsch ? bastle schon 2h da rum... bitte helft mir

    Es wird die meldung ausgegeben, dass ich erfolgreich einen user angelegt habe - hab ich aber nicht -.-

    mfg

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Public Class Userverwaltung
    3. Dim ServerString As String = "server=127.0.0.1;User id=root;Password=;Database=User"
    4. Dim SQLConnection As MySqlConnection = New MySqlConnection
    5. Private Sub Userverwaltung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. SQLConnection.ConnectionString = ServerString
    7. Try
    8. If SQLConnection.State = ConnectionState.Closed Then
    9. SQLConnection.Open()
    10. MsgBox("Verbindung erfolgreich hergestellt!", MsgBoxStyle.Information)
    11. Else
    12. SQLConnection.Close()
    13. MsgBox("Verbindung zur Datenbank fehlgeschlagen")
    14. End If
    15. Catch ex As Exception
    16. MsgBox(ex.ToString)
    17. End Try
    18. End Sub
    19. Public Sub NewUser(ByRef SQLStatement As String)
    20. Dim cmd As MySqlCommand = New MySqlCommand
    21. With cmd
    22. .CommandText = SQLStatement
    23. .CommandType = CommandType.Text
    24. .Connection = SQLConnection
    25. End With
    26. SQLConnection.Close()
    27. MsgBox("Benutzer " + textbox1.Text + " wurde erfolgreich angelegt!")
    28. SQLConnection.Dispose()
    29. End Sub
    30. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    31. Dim SQLStatement As String = "INSERT INTO User(Username, Password) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', "
    32. NewUser(SQLStatement)
    33. End Sub
    34. Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    35. End Sub
    36. End Class

    VB.NET-Quellcode

    1. Dim SQLStatement As String = "INSERT INTO User(Username, Password) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "')"


    mehr gibts nich

    Wieso sollte das nichts bringen ??
    Ich arbeite sogut wie immer mit Datenbanken und das geht.

    VB.NET-Quellcode

    1. Dim SQLStatement As String = "INSERT INTO User(Username, Password) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "')"
    2. cme.ExecutenonQuery


    *EDIT*
    Wenn der auf die cmd zeile springt dann sag und doch die Fehlermeldung oder mach Option Strict On

    Dein Code

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Public Class Userverwaltung
    3. Dim ServerString As String = "server=127.0.0.1;User id=root;Password=;Database=User"
    4. Dim SQLConnection As MySqlConnection = New MySqlConnection
    5. Private Sub Userverwaltung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. SQLConnection.ConnectionString = ServerString
    7. Try
    8. If SQLConnection.State = ConnectionState.Closed Then
    9. SQLConnection.Open()
    10. MsgBox("Verbindung erfolgreich hergestellt!", MsgBoxStyle.Information)
    11. Else
    12. SQLConnection.Close()
    13. MsgBox("Verbindung zur Datenbank fehlgeschlagen")
    14. End If
    15. Catch ex As Exception
    16. MsgBox(ex.ToString)
    17. End Try
    18. End Sub
    19. Public Sub NewUser(ByRef SQLStatement As String)
    20. Dim cmd As MySqlCommand = New MySqlCommand
    21. With cmd
    22. .CommandText = SQLStatement
    23. .CommandType = CommandType.Text
    24. .Connection = SQLConnection
    25. End With
    26. SQLConnection.Close()
    27. MsgBox("Benutzer " + textbox1.Text + " wurde erfolgreich angelegt!")
    28. SQLConnection.Dispose()
    29. End Sub
    30. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    31. ServerString
    32. con.open
    33. Dim SQLStatement As String = "INSERT INTO User(Username, Password) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', "
    34. NewUser(SQLStatement)
    35. End Sub
    36. Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    37. End Sub
    38. End Class


    So sollte es gehen.
    Du musst natürlich die verbindeung auch Öffnen mit con.Open

    *Edit*
    Überall wo du was machen willst musst du die Verbindung öffnen.
    Beispiel:
    Du willst was eintragen, dann musst du bevor du was eintragen tust die verbindungsdaten (In deinem fall Serverstring) Importieren das du mit Serverstring() machst und da drunter machst du dann con.Open womit du die Verbindung öffnest

    *Edit2:*
    Serverstring habe ich einfach so reingepackt musst es dann mit sqlconnection austauschen

    Überall wo du die Connection öffnest musst du sie auch wieder schliesen.
    Schreib einfach hinter jedem con.Open ein con.Close

    *Edit*
    das con musst du mit deinem sqlconnection ersetzen

    was is nun mit dem nonquery dings... muss ich das usen oder nicth ?
    JA. Du musst das es "usen"
    Ich kann das Elend nicht mehr sehen.
    Hier nochmals den C&P-Code, den ich oben verlinkt habe, minimal modifiziert

    VB.NET-Quellcode

    1. Public Sub AddUser (ByVal User as String, ByVal Pwd as String)
    2. Dim conn As New MySqlConnection
    3. Dim cmd As New MySqlCommand
    4. conn.ConnectionString = "server=127.0.0.1;User id=root;Password=;Database=User"
    5. Try
    6. conn.Open()
    7. cmd.Connection = conn
    8. cmd.CommandText = "INSERT INTO `User` (Username, Password) VALUES ('" & User & "', '" & Pwd & "'"
    9. cmd.ExecuteNonQuery()
    10. Catch ex As MySqlException
    11. MessageBox.Show("Error " & ex.Number & " has occurred: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    12. End Try
    13. End Sub
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --