Utiliser une base de données MySql en Vb.Net

mysql_dotnet

Aujourd'hui j'ai besoin de me connecter à une base de données MySQL en Vb.Net afin de récupérer et sauver des données.

Tout d'abord, il faut télécharger le connecteur .Net disponible sur le site de MySQL.

Ensuite, dans votre projet il faut ajouter une référence à MySql.Data.

Puis faire un import de la librairie: Imports MySql.Data.MySqlClient

Vous pouvez ensuite utiliser une fonction telle que la suivante pour requêter votre base de données MySQL:

Public Sub Test()
	Dim connStr As String = "SERVER=localhost;DATABASE=xflows;UID=root;PASSWORD="
	Dim connection As New MySqlConnection(connStr)

	Dim command As MySqlCommand = connection.CreateCommand()
	Dim reader As MySqlDataReader
	command.CommandText = "select * from table"
	connection.Open()
	reader = command.ExecuteReader()
	While reader.Read()
		Dim row As String = vbNullString
		For i As Integer = 0 To reader.FieldCount - 1
			Debug.WriteLine(reader.GetValue(i).ToString())
		Next
	End While
	connection.Close()
End Sub

4 Responses to Utiliser une base de données MySql en Vb.Net

  1. KAFILONGO says:

    I m looking for the converter vb6 to vb.net

  2. marco says:

    Salut
    pourrais tu m aider ?
    voila, j ai suivi ton exemple sur vb.net et mysql
    mais je n arrive pas a faire , mon truc

    en gros voila, j ai 4 champs
    ID
    PSEUDO
    PASSE
    MEL

    je desire les stocker dans les variable suivantes
    alors j arrive a connecter la base de donéées,
    mais apres, je n arrive pas a stocker le resultat de mes 4 champs, dans les variables suivantes :
    V1
    V2
    V3
    V4
    ensuite, je desire donc afficher v1 à v4
    dans mes 4 labels !!
    si tu peux me montrer comment faire
    Merci

  3. marco says:

    Bon, alors c est trouver à la sauvage, apres plein de bidouille 🙂 ^^
    je vais t ecrire mon acces aux bases pour lire
    pour update
    pour ecrire
    pour optimize une table ^^
    et pour lire 🙂 ^^ mais ca vaut ce que ca vaut 🙂 ^^
    pas chercher la ptite bete 🙂 ^^
    COMMENTAIRE POUR EXPLIQUER CE QUE JE FAIT
    alors ma table joueur a 5 champs
    – ID
    – pseudo
    – passemorde
    – mel
    – heure
    ———————————————————–

    bon deja on place tous les imports 🙂 ^^

    Imports MySql
    Imports MySql.Data
    Imports MySql.Data.MySqlClient
    Imports System.Net.Sockets
    Imports System.Net
    Imports System.Threading
    Imports System.Threading.Thread
    ——————————–
    Public Class page1
    ——————————–
    Dim valeur As Integer
    Dim sermysqltest As String
    Dim droit As String
    Dim passeadmi As String
    Dim database As String
    Dim connectionglobal
    Dim ip As String = “127.0.0.1”

    ici on est dans la zone public de la feuille, et donc je declare Toutes mes variables qui doivent etre utilisées et modifiées par Toutes la page !!

    ———————————-

    Private Sub page1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.WindowState = FormWindowState.Normal
    valeur = 0
    sermysqltest = “127.0.0.1”
    droit = “root”
    passeadmi = “”
    database = “Mabase”
    End Sub

    Ici , on a defini ici données pour acceder a la base

    ————————–

    Alors la c’est pas propre, car on peux retrouver ce code ailleurs plus bas, mais je code mal, je sais !! j ai utiliser un boutton pour chaque action, je l ecrit tel que !!

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    On se connecte à la base MYSQL

    ‘ ici on initialise la connection
    Dim serveurgeneral As String = “Database=” + database + “;Data Source=” + sermysqltest + “;User Id=” + droit + “;Password=” + passeadmi
    Label1.Text = serveurgeneral
    Dim myConnection As New MySqlConnection(serveurgeneral)
    Try
    myConnection.Open()
    Catch
    Label1.Text = “en cas d erreur de connexion, on l affiche la ici
    ca marche pâs”
    End Try
    ‘ ici la connexion a reussie
    End sub
    ——————————

    Ici on va utiliser le boutton 2 , pour un update

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    ‘ ExecuteNonQuery pour faire un UPDATE , ou un INSERT ou un DELETE
    ‘ donc en gros pour les operations qui ne retourne pas de resultat

    ‘ je vais modifier l’heure dans la base, et je la force a 00:00
    ‘ UPDATE `Mabase`.`joueur` SET `heure` = ’00:00′ WHERE `id` = 1;
    Dim v(10)
    Dim monupdate_heure As String = “UPDATE `Mabase`.`joueur` SET `heure` = ’00:00’ WHERE `pseudo`=” + Chr(34) + TextBox1.Text + Chr(34) + “”
    Dim myCommand As New MySqlCommand(monupdate_heure)
    myCommand.Connection = myConnection
    myCommand.ExecuteNonQuery()

    Ici on doit encadre le ‘ myCommand.ExecuteNonQuery()’ dans un try catch
    en cas d erreur pour pas bloqué l application et pour dir ou ca a merdé

    End Sub
    ———————
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

    Dim requete2 As String = “SELECT * FROM `joueur`where `pseudo`=’Marc’
    Dim cmd As MySqlCommand = New MySqlCommand(requete2, myConnection)
    Dim reader As MySqlDataReader = cmd.ExecuteReader()
    While reader.Read()
    v(1) = (reader.GetString(1))
    v(2) = (reader.GetString(2))
    v(3) = (reader.GetString(3))
    v(4) = (reader.GetString(4))
    Label1.Text = v(1).ToString() + Chr(13) + v(2).ToString()
    End While
    ici, j ai utilisé label1 Pour verifier si ca marche
    le ID , est = a 0, donc il est pas lu
    on pourrait aussi metre un catch ici !! en cas de probleme sur la lecture

    End Sub
    ——————————————————————————-
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Dim myConnection As New MySqlConnection(serveurgeneral)
    myConnection.Open() ici on cacth la connexion
    marequete = “INSERT INTO `Mabase`.`starenda` (`id`, `pseudo`, `passeword`) VALUES (NULL, ‘le nom du joueur’,’son pass’)”

    Dim myCommand As New MySqlCommand(marequete)

    myCommand.Connection = myConnection
    Try
    myCommand.ExecuteNonQuery()

    Catch ex As Exception
    Console.WriteLine(ex)

    End Try

    ici le try est indispensable car les erreur mysql sont possible
    et ex nous donne les erreurs en cas d echec d ecriture

    End Sub
    —————————————-
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click*
    Dim serveurgeneral As String = “Database=” + database + “;Data Source=” + sermysqltest + “;User Id=” + droit + “;Password=” + passeadmi
    Dim optimize As String = “OPTIMIZE TABLE joueur;”
    Dim myConnection As New MySqlConnection(serveurgeneral)
    Dim myCommand As New MySqlCommand(optimize)
    Dim requete2 As String = “OPTIMIZE TABLE joueur;”
    Dim cmd As MySqlCommand = New MySqlCommand(requete2, myConnection)
    cmd.CommandText = optimize
    end sub
    ————————————–
    voila c est le bronx , mais tout y est
    et ca marche (c ets deja ca)
    Les requete Mysql sont obtenues grace a phpmyadmin
    quand on fait une operation il redonne la requete qui a permis d arriver a ce resultat, et
    ca on le colle dans requette !!

    vous avez compris ?
    si vous voulez qu on fasse plus clair, j y reflechi car pour l instant c est clair dans am tete mais pas dans el programme 🙂 ^^

    @+
    Marco

Leave a Reply

Your email address will not be published. Required fields are marked *