Hardware ID mittels MySQL Abgleichen

  • VB.NET

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

    Hardware ID mittels MySQL Abgleichen

    Hallo Leute,

    ich komme gerade absolut nicht weiter, ich versuche den Sourcecode so umzubauen,
    das er auch überprüft, ob die E-Mail Adresse bereits vorhanden ist und das er zu jedem
    Benutzer auch die Hardwareid Speichert.

    Zum Testen habe ich eine Windows Forms Anwendung erstellt mit 6 Textboxen und 1 Button erstellt.

    -Benutzername
    -Passwort
    -Passwort wiederhohlen
    -E-Mail
    -E-Mail wiederhohlen
    -Hardware ID

    Der Code von Button1
    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 = TextBox3.Text Then ' Prüft ob die Passwörter übereinstimmen
    3. If TextBox4.Text.Contains("@") And TextBox5.Text.Contains("@") Then ' Prüft ob die E-Mails ein @ enthalten.Damit wird geschaut ob die Email gültig ist
    4. If TextBox4.Text = TextBox5.Text Then ' Wennn die Emails übereinstimmen dann Trage ein
    5. Dim conn As MySqlConnection
    6. conn = New MySqlConnection
    7. conn.ConnectionString = "server=ipadresse;" & "user id=username;" & "password=passwort;" & "database=database" 'Hier gibt ihr die Datenbank ein auf der die Tabelle benutzer liegt
    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='" + TextBox1.Text + "'" ' Erstmal eine SQL Abfrage die überprüft ob es den Benutzernamen schon gibt
    15. Dim SQLAbfrage3 As String = "SELECT * FROM benutzer WHERE Email'" + TextBox4.Text + "'" ' Erstmal eine SQL Abfrage die überprüft ob es den Benutzernamen schon gibt
    16. Dim myCommand As New MySqlCommand
    17. myCommand.Connection = conn
    18. myCommand.CommandText = SQLAbfrage
    19. myAdapter.SelectCommand = myCommand
    20. Dim myData As MySqlDataReader
    21. myData = myCommand.ExecuteReader() ' Abfrage starten
    22. If myData.HasRows = 0 Then ' Wenn dieser Benutzername nicht existiert dann fang mit der Registrierung an
    23. conn.Close()
    24. conn.Open()
    25. Dim registerfinal As New MySqlDataAdapter
    26. Dim benutzer As String = MD5StringHash(TextBox1.Text)
    27. Dim passwort As String = MD5StringHash(TextBox2.Text)
    28. myCommand.CommandText = "INSERT INTO benutzer(Benutzername, Passwort, Email, Hardware ID)" _
    29. & "VALUES('" & benutzer & "','" & passwort & "','" & TextBox4.Text & "','" & TextBox6.Text & "')"
    30. myCommand.ExecuteNonQuery() ' SQL Abfrage starten und eintragen
    31. MsgBox("Der Account mit dem Namen : " & TextBox1.Text & " wurde erfolgreich erstellt")
    32. conn.Close()
    33. Else
    34. MsgBox("Dieser Benutzername, diese E-Mail, wird bereits verwendet.")
    35. End If
    36. Else
    37. MsgBox("Die eingegebenen Emails stimmen nicht über ein !")
    38. End If
    39. Else
    40. MsgBox("Die eingegebenen E-Mails sind ungültig !")
    41. End If
    42. Else
    43. MsgBox("Die eingegebenen Passwörter stimmen nicht überein")
    44. End If
    45. End Sub


    Hier kommt der Error:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. myCommand.ExecuteNonQuery() ' SQL Abfrage starten und eintragen


    undzwar das:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ID)VALUES('C4CA4238A0B923820DCC509A6F75849B','C4CA4238A0B923820DCC509A6F75849B',' at line 1


    Ich hoffe ihr könnt mit den Informationen was anfangen,
    und könnt mich unterstützen.

    Ich hoffe ihr könnt mit den Informationen was anfangen,


    Ja, Syntax-Error in Deinem SQL-Statement ... steht doch da. *g*

    [MySQL]
    INSERT INTO benutzer(Benutzername, Passwort, Email, Hardware ID) ... [/MySQL]

    Muss schief gehen, da Column-/Field-Names in SQL NIEMALS Sonderzeichen oder Leerzeichen beinhalten dürfen wenn sie nicht in [] gesetzt sind. ;)

    Wandel es wie folgt um:

    [MySQL]
    INSERT INTO benutzer(Benutzername, Passwort, Email, [Hardware ID]) ... [/MySQL]

    Dann sollte es eigentlich gehen wenn keine anderen Fehler im SQL-Statement sind ... wie falscher Datentyp oder sowas.

    Gruß

    Rainer

    raist10 schrieb:


    [...]


    INSERT INTO benutzer(Benutzername, Passwort, Email, [Hardware ID]) ...
    Dann sollte es eigentlich gehen wenn keine anderen Fehler im SQL-Statement sind ... wie falscher Datentyp oder sowas.

    Gruß

    Rainer
    Mhh habe ich geändert, jedoch schmeisst er mir nun das raus:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Hardware ID])VALUES('C4CA4238A0B923820DCC509A6F75849B','C4CA4238A0B923820DCC509' at line 1
    Hhhmmm ... ansonsten ist die Syntax des SQL-Statements eigentlich korrekt.

    - Überprüfe alle Field-Namen ob sie auch so geschrieben sind wie sie in dem Table benutzer in der DB stehen. Vor allem das Field [Hardware ID] ... gibt es das wirklich so in der DB?
    - Überprüfe ob auch wirklich alle Fields in der DB den Datentyp Text haben

    Gruß

    Rainer

    raist10 schrieb:


    Ich hoffe ihr könnt mit den Informationen was anfangen,


    Ja, Syntax-Error in Deinem SQL-Statement ... steht doch da. *g*

    [MySQL]
    INSERT INTO benutzer(Benutzername, Passwort, Email, Hardware ID) ... [/MySQL]

    Muss schief gehen, da Column-/Field-Names in SQL NIEMALS Sonderzeichen oder Leerzeichen beinhalten dürfen wenn sie nicht in [] gesetzt sind. ;)

    Wandel es wie folgt um:

    [MySQL]
    INSERT INTO benutzer(Benutzername, Passwort, Email, [Hardware ID]) ... [/MySQL]

    Dann sollte es eigentlich gehen wenn keine anderen Fehler im SQL-Statement sind ... wie falscher Datentyp oder sowas.

    Gruß

    Rainer
    Ich weiss nicht woran es lag habe die Datenbank gelöscht und neu erstellt jetzt klappt es Danke trotzdem