MySql Datenbank Text einschreiben

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    MySql Datenbank Text einschreiben

    Hallo,
    ich möchte über ein kleines Programm mehreres von einer MySql Datenbank abrufen und auch einen Wert einschreiben.

    Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim conn As MySqlConnection
    3. conn = New MySqlConnection
    4. conn.ConnectionString = "Data Source = *********; Database = *********; UID = *********; PWD = *********"
    5. Try
    6. conn.Open()
    7. Catch myerror As MySqlException
    8. MessageBox.Show(myerror.Message)
    9. End Try
    10. Try
    11. Dim myAdapter As New MySqlDataAdapter
    12. Dim myCommand As New MySqlCommand
    13. myCommand.Connection = conn
    14. myAdapter.SelectCommand = myCommand
    15. 'so bleibt die Verbindung durchgehend bestehen
    16. Dim registerfinal As New MySqlDataAdapter
    17. Dim TEXT As String = TextBox1.Text
    18. myCommand.CommandText = "INSERT INTO `table1` (`TEXT`) VALUES('" & TEXT & "')" 'Der Vordere Wert TEXT ist die Spalte in der DB
    19. conn.Close()
    20. Catch ex As Exception
    21. MsgBox(ex.Message)
    22. End Try
    23. TextBox1.Clear()
    24. End Sub


    Ich möchte den Text, den man in eine TextBox eingeben kann in die Datenbank einschreiben, jedoch funktioniert das nicht, wie ich es hier habe...
    Ist es ein Fehler und muss man es ganz anders machen? Ich bitte um Hilfe
    Der gezeigte Ansatz geht so in mehrfacher Hinsicht nicht.
    Zunächstmal müssen die TryCatchens weg, damit Fehler überhaupt sinnvoll gemeldet werden, wenn sie auftreten. Weil "funktioniert nicht" ist keine Fehlermeldung. Tipps zum Frage stellen
    Dann sind da verschiedene Vorgehensweisen (DataAdapter, SqlCommand) durcheinander gemischt.
    Keine der gezeigten Vorgehensweisen kann man verantworten: Sql-Injection

    Ausserdem verbauen die hiesigen Ansätze alle die Möglichkeit von Databinding, also von effizienter Oberflächengestaltung.
    Daher sag ich immer, ehe man mit einer Datenbank anfängt, soll man erst noch einige andere Dinge lernen, nämlich Datenmodellierung und Databinding.
    Und das hat selbst wiederum einiges Grundlagen-KnowHow zur Vorraussetzung - ich hab den ganzen Sermon mal in einem Post zusammengefasst: Datenverarbeitungs-Vorraussetzungen
    Das mit dem Sql-Injection is mir relativ egal, da ich das Programm nur für mich und ein paar Kollegen mache.
    Ich habe das jetzt nochmal anders gemacht.

    Quellcode

    1. Public Class Form3
    2. Dim MysqlConn As MySqlConnection
    3. Dim COMMAND As MySqlCommand
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. MysqlConn = New MySqlConnection
    6. MysqlConn.ConnectionString = "Data Source = *****; Database = *****; UID = *****; PWD = *****"
    7. Try
    8. MysqlConn.Open()
    9. Dim Quary As String
    10. Quary = "INSERT INTO `player` (`name`, `id`, `money`, `datum`, `Spiel`, `Server`, `Status`) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "', '" & TextBox4.Text & "', '" & TextBox5.Text & "', '" & TextBox6.Text & "')"
    11. COMMAND = New MySqlCommand(Quary, MysqlConn)
    12. MysqlConn.Close()
    13. Catch ex As Exception
    14. MsgBox(ex.Message)
    15. Finally
    16. MysqlConn.Dispose()
    17. End Try
    18. End Sub
    19. End Class

    Rein theoretisch müsste es doch auch so gehen, jedoch passiert nichts, wenn man den Button betätigt. Muss ich das komplett anders lösen oder ist im Code nur ein Fehler?

    ErfinderDesRades schrieb:

    zwar gebildet, nicht aber executed wird.


    wie im Post #2 erwähnt^^

    versuch mal das:

    VB.NET-Quellcode

    1. MysqlConn.Open()
    2. Dim Quary As String
    3. Quary = "INSERT INTO `player` (`name`, `id`, `money`, `datum`, `Spiel`, `Server`, `Status`) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "', '" & TextBox4.Text & "', '" & TextBox5.Text & "', '" & TextBox6.Text & "')"
    4. COMMAND = New MySqlCommand(Quary, MysqlConn)
    5. COMMAND.ExecuteNonQuery()
    6. MysqlConn.Close()

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