Error bei Regestrirung

  • VB.NET

Es gibt 46 Antworten in diesem Thema. Der letzte Beitrag () ist von programmer71.

    Error bei Regestrirung

    Hallo ich habe ein problem bei der regestrirungsform von

    es kommt immer der fehler Der Index war außerhalb des Arraybereichs.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox2.Text = TextBox7.Text Then ' Prüft ob die Passwörter übereinstimmen
    3. If TextBox3.Text.Contains("@") And TextBox8.Text.Contains("@") Then ' Prüft ob die E-Mails ein @ enthalten.Damit wird geschaut ob die Email gültig ist
    4. If TextBox2.Text = TextBox7.Text Then ' Wennn die Emails übereinstimmen dann Trage ein
    5. Dim result As MySqlLib.ResultCollection = db.Query("SELECT * FROM yt WHERE user='" + TextBox1.Text + "'") ' Erstmal eine SQL Abfrage die überprüft ob er den Benutzernamen schon gibt <------- Hier is der fehler
    6. If result.Row.Count = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
    7. Dim benutzer As String = TextBox1.Text
    8. Dim passwort As String = MD5StringHash(TextBox2.Text)
    9. db.Query("INSERT INTO yt(user, pw, email, abos, kat, partner, admin)" _
    10. & "VALUES('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & admin & "')")
    11. MsgBox("Der Account mit dem Namen : " & TextBox1.Text & " wurde erfolgreich erstellt")
    12. Else
    13. MsgBox("Dieser Benutzername existiert bereits")
    14. End If
    15. Else
    16. MsgBox("Die eingegebenen Emails stimmen nicht über ein !")
    17. End If
    18. Else
    19. MsgBox("Die eingegebenen E-Mails sind ungültig !")
    20. End If
    21. Else
    22. MsgBox("Die eingegebenen Passwörter stimmen nicht überein")
    23. End If


    komisch is nur wen der benutzer gibt zeigt er es an das es ihn schon gibt aber wen ich z.b user a anlegen will klappt das nicht
    In welcher Programmzeile kommt denn der Fehler?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das wäre dann der Release-Modus.
    Nein, das musst Du nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Welchen Inhalt hat TextBox1.Text?
    1. der String,
    2. die Bedeutung dieses Strings
    (z.B. "5", Anzahl iwelcher Elemente).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Welchen Inhalt hat TextBox1.Text?
    1. der String,
    2. die Bedeutung dieses Strings
    (z.B. "5", Anzahl iwelcher Elemente).

    VB.NET-Quellcode

    1. Imports MySqlLib3
    2. Public Class Form4
    3. Dim admin As Integer
    4. Public db As New MySqlLib("http://**********", True)
    5. Private Sub TextBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Click
    6. TextBox1.Text = ""
    7. End Sub
    8. Private Sub TextBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Click
    9. TextBox2.Text = ""
    10. End Sub
    11. Private Sub TextBox3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.Click
    12. TextBox3.Text = ""
    13. End Sub
    14. Private Sub TextBox4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.Click
    15. TextBox4.Text = ""
    16. End Sub
    17. Private Sub TextBox5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.Click
    18. TextBox5.Text = ""
    19. End Sub
    20. Private Sub TextBox6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.Click
    21. TextBox6.Text = ""
    22. End Sub
    23. Private Sub TextBox7_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox7.Click
    24. TextBox7.Text = ""
    25. End Sub
    26. Private Sub TextBox8_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox8.Click
    27. TextBox8.Text = ""
    28. End Sub
    29. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    30. If TextBox2.Text = TextBox7.Text Then ' Prüft ob die Passwörter übereinstimmen
    31. If TextBox3.Text.Contains("@") And TextBox8.Text.Contains("@") Then ' Prüft ob die E-Mails ein @ enthalten.Damit wird geschaut ob die Email gültig ist
    32. If TextBox2.Text = TextBox7.Text Then ' Wennn die Emails übereinstimmen dann Trage ein
    33. Dim result As MySqlLib.ResultCollection = db.Query("SELECT * FROM yt WHERE user='" + TextBox1.Text + "'") ' Erstmal eine SQL Abfrage die überprüft ob es den Benutzernamen schon gibt
    34. If result.Row.Count = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
    35. Dim benutzer As String = TextBox1.Text
    36. Dim passwort As String = MD5StringHash(TextBox2.Text)
    37. db.Query("INSERT INTO yt(user, pw, email, abos, kat, partner, admin)" _
    38. & "VALUES('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & admin & "')")
    39. MsgBox("Der Account mit dem Namen : " & TextBox1.Text & " wurde erfolgreich erstellt")
    40. Else
    41. MsgBox("Dieser Benutzername existiert bereits")
    42. End If
    43. Else
    44. MsgBox("Die eingegebenen Emails stimmen nicht über ein !")
    45. End If
    46. Else
    47. MsgBox("Die eingegebenen E-Mails sind ungültig !")
    48. End If
    49. Else
    50. MsgBox("Die eingegebenen Passwörter stimmen nicht überein")
    51. End If
    52. End Sub
    53. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    54. If ComboBox1.Text = "Admin" Then
    55. admin = 1
    56. Else
    57. admin = 0
    58. End If
    59. End Sub
    60. End Class



    da steht der User drine hab nochma den ganzen coad gepostet

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox2.Text = TextBox7.Text Then ' Prüft ob die Passwörter übereinstimmen
    3. If TextBox3.Text.Contains("@") And TextBox8.Text.Contains("@") Then ' Prüft ob die E-Mails ein @ enthalten.Damit wird geschaut ob die Email gültig ist
    4. If TextBox2.Text = TextBox7.Text Then ' Wennn die Emails übereinstimmen dann Trage ein
    5. try
    6. Dim result As MySqlLib.ResultCollection = db.Query("SELECT * FROM yt WHERE user='" + TextBox1.Text + "'") ' Erstmal eine SQL Abfrage die überprüft ob er den Benutzernamen schon gibt <------- Hier is der fehler
    7. If result.Row.Count = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
    8. Dim benutzer As String = TextBox1.Text
    9. Dim passwort As String = MD5StringHash(TextBox2.Text)
    10. db.Query("INSERT INTO yt(user, pw, email, abos, kat, partner, admin)" _
    11. & "VALUES('" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & admin & "')")
    12. MsgBox("Der Account mit dem Namen : " & TextBox1.Text & " wurde erfolgreich erstellt")
    13. Else
    14. MsgBox("Dieser Benutzername existiert bereits")
    15. End If
    16. catch ex as exception
    17. msgbox(ex.message)
    18. end try
    19. Else
    20. MsgBox("Die eingegebenen Emails stimmen nicht über ein !")
    21. End If
    22. Else
    23. MsgBox("Die eingegebenen E-Mails sind ungültig !")
    24. End If
    25. Else
    26. MsgBox("Die eingegebenen Passwörter stimmen nicht überein")
    27. End If
    Lass den Try-Block mal raus. Es kommt ja der gleiche Fehler. Denn man sollte diese immer stehen lassen und nie zu unterdrücken versuchen... Das heißt der Fehler liegt irgendwo darin, dass du zu wenig Elemente im Array hast.
    Du könntest die maximale Länge mit der Length-Eigenschaft festlegen.
    Denn du hast hier zu viele Variablen in der Array und der Index ist zu klein. Das ist so wie wenn ich sage 4 von 3. Verstehste? Darum denke ich mal liegt es daran. Sagt nämlich die Fehlermeldung normalerweise aus.