[ExecuteNonQuery] MySQLException wurde nicht behandelt ??

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    [ExecuteNonQuery] MySQLException wurde nicht behandelt ??

    Hallo Leute,
    Ich habe ein Problem mit meinem Registrier Button.

    Ich bekomme eine Fehlermeldung bei folgendem Code

    VB.NET-Quellcode

    1. Imports MySql
    2. Imports MySql.Data
    3. Imports MySql.Data.MySqlClient
    4. Public Class Form2
    5. ''' <summary>
    6. ''' Hier wird der Loginbutton bescrieben
    7. ''' </summary>
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. If TextBox2.Text = TextBox3.Text Then
    10. Dim conn As New MySqlConnection
    11. Dim cmd As New MySqlCommand
    12. Dim anzahl As Integer
    13. conn.ConnectionString = "Server=funkspiel-bos-funk.de; Uid=benutzer; Password=juergen; Database=benutzer;"
    14. 'Verbindung Öffnen
    15. cmd.Connection = conn
    16. conn.Open()
    17. Dim myAdapter As New MySqlDataAdapter
    18. Dim SQLAbfrage As String = "SELECT * FROM benutzer Where Benutzername=" + TextBox1.Text + "'"
    19. cmd.CommandText = SQLAbfrage
    20. anzahl = cmd.ExecuteNonQuery
    21. myAdapter.SelectCommand = cmd
    22. Dim reader As MySqlDataReader
    23. reader = cmd.ExecuteReader
    24. If reader.HasRows = 0 Then
    25. conn.Close()
    26. conn.Open()
    27. Dim registerfinal As New MySqlDataAdapter
    28. Dim benutzer As String = MD5StringHash(TextBox1.Text)
    29. Dim passwort As String = MD5StringHash(TextBox2.Text)
    30. cmd.CommandText = "INSERT INTO benutzer (Benutzername,Passwort,EMail) VALUES ('" & benutzer & "','" & passwort & "','" & "')"
    31. cmd.ExecuteNonQuery()
    32. MessageBox.Show("Der Account mit dem Namen: " & TextBox1.Text & " wurde erfolgreich erstellt")
    33. conn.Close()
    34. Else
    35. MessageBox.Show("Benutzer bereits Vorhanden")
    36. End If
    37. Else
    38. MessageBox.Show("Passwörter stimmen nicht überein")
    39. End If
    40. End Sub
    41. End Class

    Bei ExecuteNonQuery bekomme ich den Fehler MySQLException wurde nicht behandelt.

    Genauer Fehler in Bild im Anhang

    Ich grabe diesen Thread noch einmal aus, da ich das gleiche Problem habe.. Hier mein Code, falls es hilft..


    VB.NET-Quellcode

    1. If register.txt_email.Text.Contains("@") Then ' Prüft ob die E-Mail ein @ enthält. Damit wird geschaut ob die Email gültig ist
    2. Dim conn As MySqlConnection
    3. conn = New MySqlConnection
    4. conn.ConnectionString = "server=localhost;" _
    5. & "user id=root;" _
    6. & "password=123456;" _
    7. & "database=herocc"
    8. Try
    9. conn.Open() ' Verbindung öffnen
    10. Catch myerror As MySqlException
    11. MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString)
    12. End Try
    13. Dim myAdapter As New MySqlDataAdapter
    14. Dim SQLAbfrage As String = "SELECT * FROM benutzer WHERE Benutzername='" + register.txt_benutzer.Text + "'" ' Erstmal eine SQL Abfrage die überprüft ob es den Benutzernamen schon gibt
    15. Dim myCommand As New MySqlCommand
    16. myCommand.Connection = conn
    17. myCommand.CommandText = SQLAbfrage
    18. myAdapter.SelectCommand = myCommand
    19. Dim myData As MySqlDataReader
    20. myData = myCommand.ExecuteReader() ' Abfrage starten
    21. If myData.HasRows = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
    22. conn.Close()
    23. conn.Open()
    24. Dim registerfinal As New MySqlDataAdapter
    25. Dim benutzer As String = register.txt_benutzer.Text
    26. Dim passwort As String = register.txt_passwort.Text
    27. Dim email As String = register.txt_email.Text
    28. Dim level As String = "1"
    29. Dim klasse As String = klasse_box.Text
    30. Dim gold As String = "2000"
    31. Dim motivation As String = "100"
    32. Dim freieskills As String = "2"
    33. Dim erfahrung As String = "0"
    34. Dim erfahrungmax As String = "100"
    35. Dim schaden As String = numeric_schaden.Value
    36. Dim verteidigung As String = numeric_verteidigung.Value
    37. Dim magie As String = numeric_magie.Value
    38. Dim fähigkeit As String = numeric_fähigkeit.Value
    39. Dim glück As String = numeric_glück.Value
    40. myCommand.CommandText = "INSERT INTO benutzer(Benutzername, Passwort, Level, Klasse, Gold, Motivation, Freie Skills, Erfahrung, Erfahrung Max, Schaden, Verteidigung, Magie, Fähigkeit, Glück)" _
    41. & "VALUES('" & benutzer & "','" & passwort & "','" & level & "','" & klasse & "' , '" & gold & "' , '" & motivation & "' , '" & freieskills & "' , '" & erfahrung & "' , '" & erfahrungmax & "' , '" & schaden & "' , '" & verteidigung & "' , '" & magie & "' , '" & fähigkeit & "' , '" & glück & "')"
    42. myCommand.ExecuteNonQuery() ' SQL Abfrage starten und eintragen
    43. MsgBox("Der Account mit dem Namen : " & register.txt_benutzer.Text & " wurde erfolgreich erstellt")
    44. conn.Close()
    45. Else
    46. MsgBox("Dieser Benutzername existiert bereits")
    47. End If
    48. End If
    49. End Sub


    Genau gleiche Fehlermeldung wie der TE

    Hoffe ihr könnt mir helfen :)

    lg

    VB.NET-Quellcode

    1. myCommand.CommandText = "INSERT INTO benutzer(Benutzername, Passwort, Level, Klasse, Gold, Motivation, Freie Skills, Erfahrung, Erfahrung Max, Schaden, Verteidigung, Magie, Fähigkeit, Glück)" _
    2. & "VALUES('" & benutzer & "','" & passwort & "','" & level & "','" & klasse & "' , '" & gold & "' , '" & motivation & "' , '" & freieskills & "' , '" & erfahrung & "' , '" & erfahrungmax & "' , '" & schaden & "' , '" & verteidigung & "' , '" & magie & "' , '" & fähigkeit & "' , '" & glück & "')"


    Kann es sein, dass einem da leicht schwummerig vor den Augen wird?
    Du möchtest doch bestimmt DBParameter verwenden!