MySQL Abfrage

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    MySQL Abfrage

    hallo liebe community,

    wenn ich folgendes als code benutze um abzufragen ob user mit name und email existiert, kommt ein fehler, bitte helfen

    VB.NET-Quellcode

    1. Imports MySQL.Data
    2. Public Class Login
    3. Public eingeloggt As Boolean = False
    4. Private Sub btn_login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_login.Click
    5. Dim conn As New MySql.Data.MySqlClient.MySqlConnection
    6. Dim myConnectionString As String
    7. Dim command As New MySqlClient.MySqlCommand
    8. command.Connection = conn
    9. myConnectionString = "host=db4free.net;" _
    10. & "uid=user;" _
    11. & "pwd=passwort;" _
    12. & "database=userdataph;"
    13. Try
    14. conn.ConnectionString = myConnectionString
    15. conn.Open()
    16. command.CommandText = ("Select Name , EMail From Data where Name='" & tb_name.Text & "' , EMail='" & tb_mail.Text & "'")
    17. command.ExecuteNonQuery()
    18. MsgBox("Sie haben sich eingeloggt!", MsgBoxStyle.Information)
    19. eingeloggt = True
    20. Me.Hide()
    21. Catch ex As MySql.Data.MySqlClient.MySqlException
    22. MessageBox.Show(ex.Message)
    23. End Try
    24. End Sub
    25. End Class
    Try-Catch weg lassen

    WELCHER FEHLER KOMMT (das haben wir dir schon Millionen mal gesagt das du uns diie Fehlermeldung sagen sollst)

    Und setz mal ein wenig Eigeninitative auf dann lernst du auch was

    *EDIT*

    VB.NET-Quellcode

    1. command.CommandText = ("Select Name , EMail From Data where Name='" & tb_name.Text & "' & EMail='" & tb_mail.Text & "'")
    2. command.ExecuteNonQuery() '<--- kannst du dir schenken


    Verstehst du den select befehl überhaupt ?

    ja, ok, ich habe das hier selber hingekriegt, dass sie verbindet, ich denke, du erinnerst an mein thread

    es ist immer noch der fehler:

    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 ' EMail='Test'' at line 1
    An den Thread wo wir die alles zum Kopieren und Einfügen geschrieben haben .... ja.

    VB.NET-Quellcode

    1. command.CommandText = ("SELECT Name , EMail FROM Data WHERE Name='" & tb_name.Text & "' & EMail='" & tb_mail.Text & "'")
    2. command.ExecuteNonQuery() '<--- kannst du dir schenken


    Schreibe "Befehle" GROSS

    Das hat mit dem Groß schreiben nichts zu tun.
    Die , hätten einfach zu & zeichen ausgetauscht werden. Fertig.
    Aber wenn du wirklich so ein "Visual Basic Experte" bist wie du es in deinem Benuztertitel stehen hast solltest du so fehler selbst finden und beheben

    HerrFrie schrieb:

    warum soll er sich den Befehl schenken ? Ohne den schickt er doch gar keine Abfrage an die Datenbank ?


    Wie du schon sagtest "schicken". Zum auslesen braucht man den query nicht. Da du ja nichts senden willst.
    Zum schreiben bruäuchte er den wieder ja da er was in die DB schreiben will.

    Zum Lesen braucht man lediglich (wenn man was in Labels oder so schreiben will) den reader

    Ich versuchs dir mal mit einem kleinen "Satzspiel" zuerklären:
    Wenn du in die Datenbank was schreiben willst, brauchst du "Erlaubniss der DB" um auszulesen brauchst du sie nur zr hälfte.
    Der Query sagt wenn du was schreiben willst zur Datenbank: "Darf ich schreiben" ?
    Dann sagt die Datenbank "Ja darfst du" dann schickt der query den ganzen kram dahin wo du es hin haben willst.

    Um aber auszulesen, braucht die DB keine erlaubniss zu geben da du ja nichts machen willst auser zu lesen.
    Daher ist Query nutzlos das macht der reader.

    Du gehst ja auch nicht in die Bücherrei und fragst: "Herr verkäufer, darf ich mir dieses buch anschaun ?" sondern du holst es einfach aus dem regal und schaust es dir an.
    Das ist im endefekt das gleiche Pinzip. Wenn du das buch kaufst gehst du zur Kasse und zahlst das kannst du als "Erlaubnisss" fassen, das du das Buch aus dem Laden entfernen darsft.

    Hoffe ich habe es mehr oder weniger richtig und verstädnlich erklärt

    Aua. Das will ich so nicht stehen lassen. Mit "Erlaubnis" hat das wenig zu tun.

    Ein Query ist eine Abfrage.
    In SQL wird diese typischerweise mit dem SELECT-Befehl durchgeführt.

    Es gibt noch andere SQL-Befehle, die keine Daten abfragen, z.B. INSERT oder UPDATE.
    Das sind keine Queries. Die liefern nur einen Status oder die Zahl der modifizierten Records zurück.

    Ein Query wird deshalb üblicherweise von einem Reader ausgeführt, der in der Lage ist, die zurückgelieferten Daten zu verarbeiten.
    Alternativ auch von einem Recordset.

    Mit ExecuteNonQuery kann man (sinnvoll) alle Befehle ausführen, die keine Daten zurückgeben (die NonQuery-Befehle).
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --