VB.NET connexion base mysql et projet VBNET
Résolu/Fermé
angelus1821
Messages postés
192
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
-
4 mai 2012 à 15:35
angelus1821 Messages postés 192 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 - 7 mai 2012 à 10:56
angelus1821 Messages postés 192 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 21 décembre 2014 - 7 mai 2012 à 10:56
A voir également:
- Vb.net mysql
- Mysql download - Télécharger - Bases de données
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock' (2) ✓ - Forum Linux / Unix
- Mysql error ✓ - Forum Internet / Réseaux sociaux
- Blob mysql ✓ - Forum Webmastering
- Impossible de se connecter au serveur mysql - Forum Ubuntu
10 réponses
Bonjour,
Déjà ta chaine de connection est faussé !
Dim Chaine As String = "server =localhost ;user = root ;password =" & """" & """" & ";database= final"
maconnexion.ConnectionString = Chaine
Cdt
Lupin
Déjà ta chaine de connection est faussé !
Dim Chaine As String = "server =localhost ;user = root ;password =" & """" & """" & ";database= final"
maconnexion.ConnectionString = Chaine
Cdt
Lupin
re:
Voici la définition :
1.) J'ai assumé que tu cherchais à obtenir la liste de la table
( reacteur ), donc j'ai accumulé les résultats dans des listbox.
2.) Ce code est modifié, car je procède toujours avec des objets
et 3 couches dans le modèle organique.
Interface
Controleur
Data
La couche Data est une couche (DLL) à 2 classes
- L'Objet de service
- Une liste d'objets de service
La couche Controleur contient aussi 2 classes
- Une classe Amie (Friends) - Les requêtes SQL
- Une classe Public - La transaction
donc l'interface n'accède jamais directement à la BD.
Cdt
Lupin
Voici la définition :
Imports MySql.Data.MySqlClient
Public Class PC_UI_TO_CDA
Public Sub ObtenirListeReacteur()
Dim ChaineConnexion As String = String.Empty
Dim ChaineSQL As String = String.Empty
Dim StrTexte As New System.Text.StringBuilder
Dim Connexion As MySqlConnection
Try
' Parametrage de la chaine de connection
ChaineConnexion = String.Format("server={0};user id={1}; password={2}; database=mysql; pooling=false", "localhost", "root", "")
Connexion = New MySqlConnection(ChaineConnexion)
Connexion.Open()
'Code
Dim MonAdapteur As MySqlDataAdapter
Dim MonDataTable As DataTable
Dim MonDataSet As New DataSet
Dim DataRowLocal As DataRow
ChaineSQL = "SELECT * FROM reacteur"
'ChaineSQL = "SELECT * FROM historique.reacteur"
MonAdapteur = New MySqlDataAdapter(ChaineSQL, Connexion)
MonAdapteur.Fill(MonDataSet, "membres")
MonDataTable = MonDataSet.Tables("membres")
For Each DataRowLocal In MonDataTable.Rows
If (DataRowLocal.Item(0) IsNot Nothing) Then
ListBox1.Items.Add(Convert.ToString(DataRowLocal.Item(0)))
End If
If (DataRowLocal.Item(1) IsNot Nothing) Then
ListBox2.Items.Add(Convert.ToString(DataRowLocal.Item(1)))
End If
If (DataRowLocal.Item(2) IsNot Nothing) Then
ListBox3.Items.Add(Convert.ToString(DataRowLocal.Item(2)))
End If
Next
Catch ex As Exception
StrTexte.AppendLine("Erreur de connexion !")
StrTexte.AppendLine("Modele")
StrTexte.AppendLine("Constructeur : PC_config_ExeSQL")
StrTexte.AppendLine(ex.ToString)
MsgBox(StrTexte.ToString)
Finally
ChaineConnexion = String.Empty
Connexion.Close()
End Try
End Sub
End Class
1.) J'ai assumé que tu cherchais à obtenir la liste de la table
( reacteur ), donc j'ai accumulé les résultats dans des listbox.
2.) Ce code est modifié, car je procède toujours avec des objets
et 3 couches dans le modèle organique.
Interface
Controleur
Data
La couche Data est une couche (DLL) à 2 classes
- L'Objet de service
- Une liste d'objets de service
La couche Controleur contient aussi 2 classes
- Une classe Amie (Friends) - Les requêtes SQL
- Une classe Public - La transaction
donc l'interface n'accède jamais directement à la BD.
Cdt
Lupin
angelus1821
Messages postés
192
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
4 mai 2012 à 17:51
4 mai 2012 à 17:51
merci !
mais j'ai deux textbox pour afficher les valeurs provenant de ma table ( le numero et la localisation ) et je sais pas comment m'y prendre pour afficher les valeurs
j'ai mes deux textbox : txtnumero et txtlocalisation
pour chacune d'entre elle, dans la propriété " databindings" puis "name" , j'ai selectionné le champ numero et localisation mais rien ne s'affiche ....
comment ça se fait?
mais j'ai deux textbox pour afficher les valeurs provenant de ma table ( le numero et la localisation ) et je sais pas comment m'y prendre pour afficher les valeurs
j'ai mes deux textbox : txtnumero et txtlocalisation
pour chacune d'entre elle, dans la propriété " databindings" puis "name" , j'ai selectionné le champ numero et localisation mais rien ne s'affiche ....
comment ça se fait?
re:
Quelques question :
Connais-tu l'objet [ BindingSource ] ?
As-tu déjà travailler avec des objets fortement typés ?
Il serait souhaitable que tu utilise une classe spécifique pour l'accès
à la BD en affectant les lectures dans des listes fortements typés.
Je n'ai réaliser à ce jour qu'un seul projet DEMO avec, MySQL,
mes connaissances étant plus large avec Oracle, DB2 et Access.
Je vais jeter un coup d'oeil sur mon modèle avec MySQL pour te fournir
plus d'info.
Cdt
Lupin
Quelques question :
Connais-tu l'objet [ BindingSource ] ?
As-tu déjà travailler avec des objets fortement typés ?
Il serait souhaitable que tu utilise une classe spécifique pour l'accès
à la BD en affectant les lectures dans des listes fortements typés.
Je n'ai réaliser à ce jour qu'un seul projet DEMO avec, MySQL,
mes connaissances étant plus large avec Oracle, DB2 et Access.
Je vais jeter un coup d'oeil sur mon modèle avec MySQL pour te fournir
plus d'info.
Cdt
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
angelus1821
Messages postés
192
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
4 mai 2012 à 20:07
4 mai 2012 à 20:07
ça ne me dit rien l'objet BindingSource .
Avec des objets fortement typés c'est à dire ? J'ai effectué quelques modifications, voici mon code:
mais j'ai le message d'erreur suivant : " the connection property has not been set or is null" en gros la connection n'a pas été etablit donc d'une part le probleme doit venir de là ....
merci d'avance !
Avec des objets fortement typés c'est à dire ? J'ai effectué quelques modifications, voici mon code:
Dim connexion As MySqlConnection = New MySqlConnection()
Dim monadaptateur As MySqlDataAdapter = New MySqlDataAdapter()
Dim macom As MySqlCommand = New MySqlCommand
Dim marequete As String
Dim tablereacteur As New DataTable
Dim maliste As New List(Of String)
Dim myDataTable As New DataTable
Try
connexion.Open()
marequete = "SELECT * FROM reacteur"
macom.Connection = connexion
macom.CommandText = marequete
monadaptateur.SelectCommand = New MySqlCommand(marequete, maconnexion)
For i As Integer = 0 To myDataTable.Rows.Count - 1
'je veux afficher les valeurs dans leur txtbox respectif
txtnum.Text = myDataTable.Rows(i)("numero").ToString
txtcap.Text = myDataTable.Rows(i)("capacite").ToString
txt_local.Text = myDataTable.Rows(i)("localisation").ToString
'MsgBox( myDataTable.Rows(i)("nom").ToString)
Next
connexion.Close()
Catch ex As Exception
MsgBox("erreur : " + ErrorToString())
End Try
mais j'ai le message d'erreur suivant : " the connection property has not been set or is null" en gros la connection n'a pas été etablit donc d'une part le probleme doit venir de là ....
merci d'avance !
re:
Voici un objet fortement typé que tu as défini :-)
Dim maliste As New List(Of String)
Autre point
la ligne :
connexion.Close()
devrait se retrouver dans le [ Finally ] du Try/Catch
Problème ou non, la connexion doit toujours être fermé.
Je vais trouver la syntaxe exacte pour la connexion.
À venir ...
Cdt
Lupin
Voici un objet fortement typé que tu as défini :-)
Dim maliste As New List(Of String)
Autre point
la ligne :
connexion.Close()
devrait se retrouver dans le [ Finally ] du Try/Catch
Try
Catch
Finnally
connexion.Close()
End Try
Problème ou non, la connexion doit toujours être fermé.
Je vais trouver la syntaxe exacte pour la connexion.
À venir ...
Cdt
Lupin
angelus1821
Messages postés
192
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
4 mai 2012 à 21:18
4 mai 2012 à 21:18
oki oki
j'ai utilisé cela en croyant pouvoir afficher les données dans ma liste, de la manière suivante :
numero ...... capacité ..... localisation
j'ai utilisé cela en croyant pouvoir afficher les données dans ma liste, de la manière suivante :
numero ...... capacité ..... localisation
angelus1821
Messages postés
192
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
5 mai 2012 à 09:53
5 mai 2012 à 09:53
merci, j'ai crée la classe PC_UI_TO_CDA jusque là tout va bien, dans celle-ci j'ai déclaré les variables listbox1,listbox2 et listbox3 .
Peux tu me dire si j'ai bien fait la manipulation suivante, dans ma forme de consultation des reacteurs, j'ai crée un objet de type pc_ui_to_cda, ensuite j'ai voulu appellé la methode "obtenirlisteReacteur" mais à partir de la ça bloque ....
code:
le message d'erreur indique " constructeur: pc_ui_to_cda .... unable to connect to any of the specified mysql hosts ..."
il me dit ça quand j'ai rajouté ces deux lignes ......
je m'y connais en vbnet mais j'ai jamais vraiment pratiqué la manipulation de données avec une base ....
Peux tu me dire si j'ai bien fait la manipulation suivante, dans ma forme de consultation des reacteurs, j'ai crée un objet de type pc_ui_to_cda, ensuite j'ai voulu appellé la methode "obtenirlisteReacteur" mais à partir de la ça bloque ....
code:
Dim monobjet As New PC_UI_TO_CDA
monobjet.ObtenirListeReacteur()
le message d'erreur indique " constructeur: pc_ui_to_cda .... unable to connect to any of the specified mysql hosts ..."
il me dit ça quand j'ai rajouté ces deux lignes ......
je m'y connais en vbnet mais j'ai jamais vraiment pratiqué la manipulation de données avec une base ....
re:
Dans le code que je t'ai soumis, celui-ci était fait pour aller
directement dans le formulaire.
Si tu veux créer une classe contrôleur comme j'ai l'habitude
de faire, il te faut ajouter un constructeur dans la class PC_UI_TO_CDA
et ce mème vide :
Public Sub New()
End Sub
ainsi, tu compile la classe, tu ajoute la référence ( la Dll ), à ton
projet formulaire et ainsi tu devrais pouvour atteindre la méthode.
Autre suggestion, puisque tu semble à l'aise sous VB, je te suggère
de créer une classe objet ainsi qu'une classe collection.
Ex.:
Tu crée un nouveau projet dans lequel tu crée 2 fichiers ( 2 classes )
1 - La classe Objet - n.b. tu dois mettre le bon type en fonction
de ta BD
ici je déclare le membre ( zId ) en string, mais ce pourrait être un Int64 ...
2 - La classe colection ( Liste fortement typé )
tu compile ce projet et tu ajoute cette référence à ton projet
formulaire et à ton projet PC_UI_TO_CDA
Tu modifie la signature de Obtenir ainsi :
donc dans ton code du formulaire, ton code devient :
Dim LaCollection As Reacteur_LST
Dim monobjet As New PC_UI_TO_CDA
LaCollection = monobjet.ObtenirListeReacteur()
ensuite tu peux alimenter n'importe quoi avec la collection.
Cdt
Lupin
Dans le code que je t'ai soumis, celui-ci était fait pour aller
directement dans le formulaire.
Si tu veux créer une classe contrôleur comme j'ai l'habitude
de faire, il te faut ajouter un constructeur dans la class PC_UI_TO_CDA
et ce mème vide :
Public Sub New()
End Sub
ainsi, tu compile la classe, tu ajoute la référence ( la Dll ), à ton
projet formulaire et ainsi tu devrais pouvour atteindre la méthode.
Autre suggestion, puisque tu semble à l'aise sous VB, je te suggère
de créer une classe objet ainsi qu'une classe collection.
Ex.:
Tu crée un nouveau projet dans lequel tu crée 2 fichiers ( 2 classes )
1 - La classe Objet - n.b. tu dois mettre le bon type en fonction
de ta BD
ici je déclare le membre ( zId ) en string, mais ce pourrait être un Int64 ...
Public Class Reacteur_ENT
#Region "--- Attributs ---"
Private Shadows zId As String = String.Empty
Private Shadows zCapacite As String = String.Empty
Private Shadows zLocalisation As String = String.Empty
#End Region
#Region "--- Propriétés ---"
Public Property Id() As String
Get
Return Me.zId
End Get
Set(ByVal value As String)
Me.zId = value
End Set
End Property
Public Property Capacite() As String
Get
Return Me.zCapacite
End Get
Set(ByVal value As String)
Me.zCapacite = value
End Set
End Property
Public Property Localisation() As String
Get
Return Me.zLocalisation
End Get
Set(ByVal value As String)
Me.zLocalisation = value
End Set
End Property
#End Region
#Region "--- Constructeur ---"
Public Sub New()
End Sub
#End Region
End Class
2 - La classe colection ( Liste fortement typé )
Public Class Reacteur_LST
Inherits List(Of Reacteur_ENT)
End Class
tu compile ce projet et tu ajoute cette référence à ton projet
formulaire et à ton projet PC_UI_TO_CDA
Tu modifie la signature de Obtenir ainsi :
Public Function ObtenirListeReacteur() As Reacteur_LST
' La partie de la boucle devient :
Dim MaCol As Reacteur_LST
Dim EntX As Reacteur_ENT
For Each DataRowLocal In MonDataTable.Rows
EntX = New Reacteur_ENT
If (DataRowLocal.Item(0) IsNot Nothing) Then
EntX.Id =(Convert.ToString(DataRowLocal.Item(0)))
End If
If (DataRowLocal.Item(1) IsNot Nothing) Then
EntX.Capacite =(Convert.ToString(DataRowLocal.Item(1)))
End If
If (DataRowLocal.Item(2) IsNot Nothing) Then
Entx.Localisation = (Convert.ToString(DataRowLocal.Item(2)))
End If
MaCol.Add(EntX)
Next
Return MaCol
End Function
donc dans ton code du formulaire, ton code devient :
Dim LaCollection As Reacteur_LST
Dim monobjet As New PC_UI_TO_CDA
LaCollection = monobjet.ObtenirListeReacteur()
ensuite tu peux alimenter n'importe quoi avec la collection.
Cdt
Lupin
angelus1821
Messages postés
192
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
21 décembre 2014
16
7 mai 2012 à 10:56
7 mai 2012 à 10:56
ok merci , je regarde ça, et je te dis quoi