Mit Parametern in Datenbank schreiben

    • VB.NET

    Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Patrick1993.

      Mit Parametern in Datenbank schreiben

      Hallo Community,
      Da ich selbst ab und an mehrere Texte in eine Spalte schreiben will und es nicht mit 3.000 IF-Else Abfragen machen will, habe ich mich mal mit Parametern auseinander gesetzt.

      Darüber handelt sich mein jetziges Tutorial.

      Als erstes müssen wir logischerweise eine Verbindung zur Datenbank herstellen.
      Das machen wir wie folgt.

      Wir setzen einen Verweis von der MySQL.dll auf das Projekt mit dem wir Arbeiten wollen.
      Dann schreiben wir in dem Codefenster ganz oben über "Public Class Form1":

      VB.NET-Quellcode

      1. Imports.MySql.Data.Mysql.Client


      Nachdem wir das ganze Importiert haben, Deklrarieren wir uns ein paar kleine angaben die wir brauchen um mit der Datenbank zu Komunizieren.

      Wir deklarieren unter Public Class Fom1 folgendes:

      VB.NET-Quellcode

      1. Public cmd As New MySqlCommand 'Neues MySQL Commando
      2. Public con As New MySqlConnection ' Neue Verbindung zur Datenbank


      Nun kommen wir auch schon zum Wichtigen Teil der Datenbankverbindung.

      Um nicht immer die ganzen Verbindunsdaten neu einzugeben, schreiben wir das ganze einfach in eine eigenen Sub.
      Diese Sub sieht dann so aus:

      VB.NET-Quellcode

      1. Private Sub Verbinden()
      2. con.ConnectionString="Server=Serveradresse; UID=Benutzername; Password=Passwort des benutzers; Database=Datenbank;"
      3. cmd.connection = con 'Verbindung Validieren
      4. con.Open 'verbindung öffnen


      Nachdem wir nun unsere Verbindung fertig haben gehen wir ins Form_Load Event (oder auf einen Button ist euch überlassen) und schreiben folgendes:

      VB.NET-Quellcode

      1. Verbinden() 'Die verbindungsdaten in die Form "schieben"
      2. 'MySQL Befehl
      3. cmd.CommandText = "INSERT INTO Tabelle (`Spalte1`,`Spalte2`) VALUES ( '@wachen' , '@ort')"
      4. 'Hier fangen wir Parameter an.
      5. cmd.Parameters.Add("@wachen", MySqlDbType.Text).Value = "" 'Parameter 1
      6. cmd.Parameters.Add("@ort", MySqlDbType.Text).Value = "" 'und Parameter 2
      7. cmd.ExecuteNonQuery() 'Hier führen wir den Befehl den wir obenstehen haben aus.


      Die Parameter könnt ihr euch wie ihr wollt benennen ich habe den Ausschnitt aus einem meiner Programme kopiert.
      Die Parameter könnt ihr natürlich auch noch erweitern. Dazu müsst ihr einfach wie in dem Beispiel weiter schreiben mit

      VB.NET-Quellcode

      1. "@parameter" ,'" , 'usw


      Die Wörter die mit "@" anfangen sind Parameter und können wie schon gesagt erweitert werden.

      Der Ganze code, sieht wenn er fertig ist dann so aus:

      VB.NET-Quellcode

      1. Imports MySql.Data.MySqlClient
      2. Public Class Form1
      3. Public cmd As New MySqlCommand
      4. Public con As New MySqlConnection
      5. Private Sub Verbinden()
      6. con.ConnectionString = "Server= Serveradresse; UID=Benutzername; Database=Datenbankname;"
      7. cmd.Connection = con
      8. con.Open()
      9. End Sub
      10. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      11. Verbinden()
      12. cmd.CommandText = "INSERT INTO Tabelle (`Spalte1`,`Spalte2`) VALUES ( '@wachen' , '@ort')"
      13. cmd.Parameters.Add("@wachen", MySqlDbType.Text).Value = ""
      14. cmd.Parameters.Add("@ort", MySqlDbType.Text).Value = ""
      15. cmd.ExecuteNonQuery()
      16. End Sub
      17. End Class



      Mit der Parameter variante ist es einfacher zu Arbeiten wenn man mehrere Einträge in eine Spalte machen will.

      Hier ein Beispiel:
      Ich will in die Spalte "Wachen" 2 werte eintragen wenn eine Checkbox gecheckt ist.
      Da gehe ich einfach hin und schreibe meinen normalen Code:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      2. Verbinden()
      3. cmd.CommandText = "INSERT INTO Tabelle (`Spalte1`,`Spalte2`,`test1`) VALUES ( '@wachen' , '@ort' , '@test1')"
      4. cmd.Parameters.Add("@wachen", MySqlDbType.Text).Value = ""
      5. cmd.Parameters.Add("@ort", MySqlDbType.Text).Value = ""
      6. cmd.Parameters.Add("@test1",MySqlDbType.Varchar).Value = ""
      7. cmd.ExecuteNonQuery()
      8. End Sub


      In den ich dann eine If Abfrage einbaue die dann so aussieht:

      VB.NET-Quellcode

      1. If Checkbox1.Checked Then
      2. 'Dort werden wenn die Checkbox gechekt ist die Einträge aus Combobox 1 und Combobox2 in die Spalte "Wachen" geschrieben aber mit einem - getrennt
      3. cmd.Parameters.Add("@wachen", SqlDbType.VarChar).Value = combobox1.selecteditem.tostring & " - " & combobox2.selecteditem.tostring
      4. Else
      5. 'es geht normal weiter wenn die nicht gecheckt ist.
      6. cmd.Parameters.Add("@wachen", SqlDbType.VarChar).Value = combobox1.selecteditem.tostring
      7. End If


      ich hoffe ich konnte euch mehr oder weniger zeigen wie man mit Parametern und MySQL Arbeitet.

      Viel Spaß weiterhin hier bei VBP und beim Programmieren

      MFG
      Patrick

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Patrick1993“ ()

      Patrick1993 schrieb:

      Nun kommen wir auch schon zum Wichtigen Teil der Datenbankverbindung.

      Um nicht immer die ganzen Verbindunsdaten neu einzugeben, schreiben wir das ganze einfach in eine eigenen Sub.
      Diese Sub sieht dann so aus:

      VB.NET-Quellcode

      1. Private Sub Verbinden()
      2. con.ConnectionString="Server=Serveradresse; UID=Benutzername; Password=Passwort des benutzers; Database=Datenbank;"
      3. cmd.connection = con 'Verbindung Validieren
      4. con.Open 'verbindung öffnen
      Niemals Passwörter, Benutzernamen etc. direkt im Programm eingeben, entweder sehr sehr stark verschlüsselt (auch schlecht eigentlich) oder am besten das ganze über PHP laufen lassen, dazu befindet sich ebenfalls ein Tutorial hier im Forum.

      Im Programm gehören nur Dinge die dir selber im Falle eine Decompilierung nicht schaden können.

      Sonst aber ganz gut erklärt =)

      Edit by hal2000:
      - Quellcode-Zitat korrigiert

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

      Ich weiß das es schlecht ist ich hab ja auch nur eine "Anleitung" geschrieben mit php ändert sich ja nich besonders viel