MySQL & Booelan-Werte / MySQL trägt nicht ein / MySQL verbindet nicht

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von LucaWelker.

    MySQL & Booelan-Werte / MySQL trägt nicht ein / MySQL verbindet nicht

    Hallo,
    Ich habe ein Problem.
    Ganz einfacher Versuch: Neuer Datensatz in MySQL-Tabelle.
    MySQl.dll wurde runtergeladen und als Verweis eingefügt (aus einem anderen Programm)

    Modulcode:

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Module MySQL
    3. Public con As New MySqlConnection
    4. Public cmd As New MySqlCommand
    5. Public reader As MySqlDataReader
    6. Public Sub Provider()
    7. Try
    8. con.ConnectionString = "server=****.dyndns.org; user id=root; password=*****; database=Test"
    9. cmd.Connection = con
    10. Catch ex As Exception
    11. MsgBox(ex.Message)
    12. End Try
    13. End Sub
    14. End Module


    Formcode:

    VB.NET-Quellcode

    1. [s]Public Class Test
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Try
    4. con.Open()
    5. cmd.CommandText = "INSERT INTO Test (ID) VALUES ('" & TextBox1.Text & "')"
    6. con.Close()
    7. Catch ex As Exception
    8. con.Close()
    9. MsgBox(ex.Message)
    10. End Try
    11. End Sub
    12. End Class


    Der Befehl "MsgBox(ex.Message)" aus dem Formcode spuckt folgende Fehlermeldung aus:
    Der Schlüssel darf nicht NULL sein.
    Parametername: key

    VB versucht gar nicht sich zur MySQL zu verbinden (eingeben von falschen Daten ändert nichts an der Fehlermeldung), sondern geht direkt vom con.Open()-Befehl zur Ex-Message..

    Was um Himmels Willen hab ich falsch gemacht, bei nem anderen Programm was ich vor einiger Zeit geschrieben hab funktioniert das einwandfrei und es ist die gleiche MySQL und der gleiche Code etc..[/s]

    Probelm gelöst!

    Neues Problem:

    FS_Bergland schrieb:

    Vielen Vielen Dank :love:

    Nächstes Problem:
    Jetzt klappts, es kommt keine Fehlermeldung mehr, ich kann auch Datensätze lesen aber nicht eintragen und updaten. Wenn ich auf den Buttop zum absenden klicke passier rein gar nichts, ich hab das mal im Schritt für Schritt Modus probiert und jeder Schritt wird wie er soll durchgeführt, keiner Übersprungen etc. und EIGENTLICH müsste der das eintragen aber wenn ich das über phpmyadmin kontrolliere stelle ich fest, ist gar nichts passiert..

    Edit: Hab mal versucht nen Eintrag den ich manuell über phpmyadmin gemacht hab upzudaten, ebenfalls passiert nichts

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „FS_Bergland“ ()

    Modulcode:

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Module MySQL
    3. Public con As New MySqlConnection
    4. Public cmd As New MySqlCommand
    5. Public reader As MySqlDataReader
    6. Public Sub Provider()
    7. Try
    8. cmd.Connection = con
    9. con.ConnectionString = "server=****.dyndns.org; user id=root; password=*****; database=Test"
    10. Catch ex As Exception
    11. MsgBox(ex.Message)
    12. End Try
    13. End Sub
    14. End Module


    Meinst du so?? klappt auch net
    Vielen Vielen Dank :love:

    Nächstes Problem:
    Jetzt klappts, es kommt keine Fehlermeldung mehr, ich kann auch Datensätze lesen aber nicht eintragen und updaten. Wenn ich auf den Buttop zum absenden klicke passier rein gar nichts, ich hab das mal im Schritt für Schritt Modus probiert und jeder Schritt wird wie er soll durchgeführt, keiner Übersprungen etc. und EIGENTLICH müsste der das eintragen aber wenn ich das über phpmyadmin kontrolliere stelle ich fest, ist gar nichts passiert..

    Edit: Hab mal versucht nen Eintrag den ich manuell über phpmyadmin gemacht hab upzudaten, ebenfalls passiert nichts

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „FS_Bergland“ ()

    du hast auch folgende Zeile vergessen

    VB.NET-Quellcode

    1. cmd.ExecuteNonQuery


    die muss immer hin wenn du was an der Datenbank ändert.

    Und könntest du oben den Text wieder normal machen, also nicht durchgestrichen, für andere die das gleiche Problem haben.
    Dafür das ich mal nen Riesenprogramm mit Datenbanken gemacht hab, fällt mir gerade auf hab ich echt wenig behalten :D
    Nochmal vielen dank^^

    So und das dritte und hoffentlich wirklich allerletzte Programm:
    Ich hab 4 Spalten meiner mySQL als Boolean-Wert definiert.
    Wenn ich den Wert abrufe ist das auch kein Problem also

    VB.NET-Quellcode

    1. CheckBox1.checked = reader ("Checkbox11")


    Allerdings beim Eintragen oder Updaten geht das nicht also ich kann nicht sagen

    VB.NET-Quellcode

    1. cmd.CommandText = "update Tabelle set Chechbox11 = '" & CheckBox1.Checked & "' where ID = '" & ID.Text & "'"


    Da kommt dan folgende Meldung: You have an error in your SQL syntax, check the manual that corresponds to your MySQL server version for the right syntax to user near 'CheckBox11' = 'False' where ID = "2" at line 1

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FS_Bergland“ ()

    Laut dem Text den er im Code zuweißt, dürfte um Checkbox11 keine ' ' ich vermute dass das von Visual Studio zur besseren Übersicht hinzugefügt wurde. Versuch mal nur Testweiße anstatt False eine 0 einzutragen, ich bin mir nicht sicher ob es funktioniert, aber meines Wissens handelt MySql False als 0 und true als 1. Wobei es im Normalfall trotzdem auch mit False und True gehen sollte.

    lg.
    lg.

    LucaWelker