Utiliser une base de données MySql en Vb.Net
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
I m looking for the converter vb6 to vb.net
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
Tu pourrais me poster ta solution ?
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
pour suivre jhd, tu as testé ?
ca marche ?
Ca marche 🙂
Bonjour,
J’essaie de me connecter à une BdD située sur serveur virtuel.
Voici le code :
Dim connStr As String = “SERVER=192.168.1.200;DATABASE=BdD;UID=utilisateur;PASSWORD=MotdePasse”
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()
Voici le message d’erreur :
Une exception non gérée du type ‘MySql.Data.MySqlClient.MySqlException’ s’est
produite dans MySql.Data.dll
Informations supplémentaires : Unable to connect to any of the specified MySQL
hosts.
Pouvez-vous me dire comment faire, sachant que cela plante sur la ligne :
connection.Open()
Par avance MERCI
si tu trouves plus simple si tu arrives a faire plus propre
JHD, je prends 🙂 ^^
Merci
Bonjour,
J’essaie de me connecter à une BdD située sur serveur virtuel.
Voici le code :
Dim connStr As String = “SERVER=192.168.1.200;DATABASE=BdD;UID=utilisateur;PASSWORD=MotdePasse”
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()
Voici le message d’erreur :
Une exception non gérée du type ‘MySql.Data.MySqlClient.MySqlException’ s’est
produite dans MySql.Data.dll
Informations supplémentaires : Unable to connect to any of the specified MySQL
hosts.
Pouvez-vous me dire comment faire, sachant que cela plante sur la ligne :
connection.Open()
Par avance MERCI
bonjour olivier
dsl pour mon absence 🙂 ^^
mais j ‘ai beaucoup reflechi à ton probleme et je pense que tu as ounlié le numero
du port de ton serveur port = 3306 ?
“SERVER=192.168.1.200:3306;DATABASE=BdD;UID=utilisateur;PASSWORD=MotdePasse”
devrait marcher (ca te coute rien de tester )
si ca amrche fais nous signe