VB.NET connexion base mysql et projet VBNET
Résolu/Fermé
angelus1821
Messages postés
191
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 191 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 191 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 community server - Télécharger - Bases de données
- Vb.net download - Télécharger - Langages
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Mysql fatal error ✓ - Forum MySQL
- Le serveur mysql est inaccessible. vérifiez votre configuration. ✓ - Forum MySQL
10 réponses
Utilisateur anonyme
4 mai 2012 à 17:13
4 mai 2012 à 17:13
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
Utilisateur anonyme
4 mai 2012 à 23:36
4 mai 2012 à 23:36
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
191
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?
Utilisateur anonyme
4 mai 2012 à 19:01
4 mai 2012 à 19:01
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
191
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 !
Utilisateur anonyme
4 mai 2012 à 20:34
4 mai 2012 à 20:34
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
191
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
191
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 ....
Utilisateur anonyme
6 mai 2012 à 16:11
6 mai 2012 à 16:11
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
191
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