HTML per Update in MySQL-Datenbank speichern

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von krebsi83.

    HTML per Update in MySQL-Datenbank speichern

    Hallo zusammen,

    ich möchte mit vb.net über den MySql-Connector (MySQL Connector/NET 8.0.21) per MySqlCommand ein Update an meine Online-Shop-Datenbank senden.
    SQL-Updates senden und Selects empfangen klappt soweit schon einmal... :)
    Die Daten für mein SQL-Update (Artikelbeschreibungstext) sind aber in HTML codiert... Wie muss ich den HTML-String im Command übergeben damit sich die ganzen " und ' nicht in die Quere kommen?

    Viele Grüße

    krebsi83
    Wie genau sieht denn dein Update Befehl aus?
    Damit meine ich den gesamten Code, um deinen Befehl an die Datenbank abzusetzen, und nicht nur den SQL Teil.

    Wenn du mit parameterisierten Abfragen arbeitest, ist es völlig egal, was in deinen Daten steht, es kommt sauber im SQL Server an.

    Ein kleines Beispiel wie man mit Parametern arbeitet, findest du hier:
    VS2019 mysql Datenaustausch via VB-Code
    @EaranMaleasi

    VB.NET-Quellcode

    1. Dim cmd As New MySqlCommand
    2. Dim con = New MySqlConnection
    3. con.ConnectionString = "server=" & txtDBServer.Text & ";Port=" & txtDBPort.Text & "; user id=" & txtDBUser.Text & "; password= " & txtDBPwd.Text & "; database=" & txtDB.Text & ";"
    4. cmd.Connection = con
    5. Try
    6. con.Open()
    7. Catch myerror As MySqlException
    8. MsgBox("Keine Verbindung zur Datenbank : " & myerror.Message.ToString)
    9. End Try
    10. cmd.CommandText = "update s_articles set description_long = '" & strtxt & "' where id = (select articleID from s_articles_details WHERE ordernumber = '1230815' )"
    11. cmd.ExecuteNonQuery()
    12. con.Close()


    strtxt enthält z.T. auch mal ' Zeichen (Hochkomma), ich denke es gibt dann Probleme mit dem SQL-String

    Beispiel

    HTML-Quellcode

    1. <p id='txtid'>Test-Text</p>

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

    Wie ich mir dachte, alle Werte in den String reingefrickelt.

    Schau dir den Link an den ich dir gegeben hab, und arbeite mit Parametern, dann brauchst du dir darum keine Gedanken machen.

    Nebnebei, öffnest du für jede Datenbankaktion eine neue Connection? Die sollte eigentlich einmal erstellt, und dann bei bedarf geöffnet und geschlossen werden.
    Ich weiß, dass das in meinem Beispiel auch so drin ist, jedoch wollte ich hier die Verwendung des MySqlConnectionStringBuilders zeigen.
    @EaranMaleasi

    Vielen lieben Dank! Das war der richtige Tipp!

    mit:

    VB.NET-Quellcode

    1. cmd.CommandText = " update s_articles set description_long = @Param1 where id = (select articleID from s_articles_details WHERE ordernumber = @param2)"
    2. cmd.Parameters.AddWithValue("@Param1", Me.txtOutput.Text)
    3. cmd.Parameters.AddWithValue("@Param2", Me.txtEAN.Text)

    klappt es jetzt super! Danke!!! :)

    Nebnebei, öffnest du für jede Datenbankaktion eine neue Connection? Die sollte eigentlich einmal erstellt, und dann bei bedarf geöffnet und geschlossen werden.Ich weiß, dass das in meinem Beispiel auch so drin ist, jedoch wollte ich hier die Verwendung des MySqlConnectionStringBuilders zeigen.


    War nur für den Testcode...

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