IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Connexion a une base mysql via odbc


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut Connexion a une base mysql via odbc
    Bonjour,

    J'ai une base mysql qui tourne en local grace au workbench mysql 5.6 et je souhaiterais y accéder.
    Pour ce faire je me suis fais une classe bdd qui a pour role d'accéder a la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    Imports System
    Imports System.Data
    Imports System.Data.Odbc
     
    Public Class BDD
     
        Private _connexionParams As String = "SERVER=localhost;" + "DATABASE=Base;" + "UID=root;" + "PASSWORD=root;"
        Private _connexionOdbc As New OdbcConnection(_connexionParams)
        Private _commandOdbc As New OdbcCommand()
        Private _dataReader As OdbcDataReader
     
        ''Getters - Setters
     
        Public ReadOnly Property connexionParams() As String
            Get
                Return _connexionParams
            End Get
        End Property
     
        Public ReadOnly Property connexionOdbc() As OdbcConnection
            Get
                Return _connexionOdbc
            End Get
        End Property
     
        Public ReadOnly Property commandOdbc() As OdbcCommand
            Get
                Return _commandOdbc
            End Get
        End Property
     
        Public ReadOnly Property dataReader() As OdbcDataReader
            Get
                Return _dataReader
            End Get
        End Property
     
        ''Methodes
     
        Public Sub Connexion()
            Try
                'Connexion
                _connexionOdbc.Open()
                _commandOdbc.Connection = _connexionOdbc
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
     
        Public Sub Deconnexion()
            Try
                _dataReader.Close()
                _connexionOdbc.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
     
        Public Sub EnvoiRequetes(ByVal requete As String)
            Try
                _commandOdbc.CommandText = requete
                _dataReader = _commandOdbc.ExecuteReader()
                While _dataReader.Read()
                    'Stocker les retours de requetes dans un tableau de string ?
                    Console.WriteLine(("Data : " + _dataReader.GetString(1) + " " + _dataReader.GetString(2)))
                End While
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    End Class
    Suite a ca j'appelle la méthode connexion() pour tenter de me connecter et j'obtiens le message d'erreur suivant :
    ERROR [IM002][Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvables et nom de pilote non spécifié

    J'ai donc effectué des recherches par rapport a ce message mais je ne trouve pas d'explications bien précise, d'apres ce que j'ai compris il faut que je configue un driver odbc qui permettra de faire le lien avec la base mysql ?

    J'ai donc deux questions, la première : est ce qu'utiliser odbc est la meilleure solution pour jouer avec une bdd mysql en vb .net ? et la suivante : que dois je faire concrètement pour résoudre ce problème ?


    Merci d'avance pour le temps passé sur mon problème et bonne journée !

  2. #2
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    bonjour

    Servez-vous de ce lien pour aider
    http://www.connectionstrings.com/mysql/

    Je pense qu'il y a les réponses à vos questions

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Tout d'abord merci de vous pencher sur mon problème.

    Alors j'étais déja tombé sur ce lien et j'avais donc utilisé la méthode "Standart : Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" J'ai bien regardé les autres manières mais je n'en vois aucune qui correspond plus a mon cas que la standart ! Pensez vous a une en particulier ?

    Edit : Je devrais plutot utiliser cette manière ? : Driver={MySQL ODBC 5.2 ANSI Driver};Server=localhost;Database=myDataBase;User=myUsername;Password=myPassword;Option=3;

  4. #4
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Pour la connexion avec lien ODBC, il y'a des exemples jusqu'au driver 5.2 de MySQl

    http://www.connectionstrings.com/mys...ctor-odbc-5-2/

    peut-être modifier le nom du driver avec le votre et utiliser la chaîne de connexion convenable ?

  5. #5
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut Connector MySQL
    L'idéal pour se connecter sur une base MySQL reste de télécharger le connecteur de MySQL:
    http://dev.mysql.com/downloads/connector/net/

    L'installer, puis importer la DLL en référence.

    Et hop !

    (Il faudra toujours trouver la chaîne de connexion correspondante, mais là, au moins, si tu as une erreur de connexion tu auras un "vrai" retour de ton objet de connexion qui te dira si tu as un problème avec le login, le mot de passe, la connexion, les droits etc....

    Pour chaque boulon, il y a une bonne clé.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Entendu, je vais donc faire ca, merci beaucoup pour ces explications.. Cependant il me reste une question, tu dis d´importer la dll en référence, mais comment est ce que je récupere cette dll pour l´importer dans le projet ?
    (désolé pour cette question qui peuvent paraître bête mais je ne connais pas trop l´environnement windows)

    Pour chaque boulon, il y a une bonne clé.
    Il faut encore trouver la bonne taille

  7. #7
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Tu fais un clic droit sur Référence dans ton explorateur de solutions puis tu fais ajouter une référence. Tu fais ensuite parcourir pour choisir MySql.Data.dll.Généralement, cette dll se trouve dans C:\Program Files\MySQL\MySQL Connector Net 6.x.x\Assemblies\...
    N'oubliez pas le tag et

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    D´accord, merci beaucoup pour toutes ces informations !

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    J'ai suivi vos indications et je n'ai toujours pas de résultat..
    J'ai une base sql qui tourne en local avec phpmyadmin, j'ai installé le connector 6.8.3 : http://dev.mysql.com/downloads/connector/net/, j'ai ajouté
    la référence (c:\Program Files\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\MySql.Data.dll) -> il y a plusieurs dossier dans Assemblies, RT, v2.0, v4.0, v4.5
    Et j'effectue la connexion via cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private _connexionParams As String = "Driver={MySQL ODBC 6.8.3 UNICODE Driver};Server=localhost;Database=GestionDuPersonnel;User=test;Password=test;"
    Comme sur le site indiquant les string de connexion (http://www.connectionstrings.com/mys...ctor-odbc-5-2/) le driver allait jusqu'a 5.2, j'ai bêtement remplacé le 5.2 par 6.8.3 qui est la version que j'ai installé précedemment.

    Et donc quand je lance mon programme j'ai le message d'erreur suivant : "ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

    Alors pourquoi ce message d'erreur apparait ? J'ai spécifié le driver en ajoutant une référence donc il ne devrait pas dire qu'il ne le trouve pas .. ou bien la ligne de connexion est mauvaise et il ne trouve pas ce qu'il faut ?


    Encore merci pour toute cette aide

  10. #10
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Pour utiliser un objet d'une dll (ici le connector MySQL), il ne suffit pas d'importer la dll, tout n'est pas automatique (sinon on aurait plus de boulo)
    Il te faut créer l'objet mysql.

    Dans la classe qui gère ta connexion, tu peu importer ta nouvelle classe (comme ça, tu as un accès direct, sans faire à chaque fois MySQL.DATA.etc... :

    Tu peux dorénavant te créer un objet de connexion MySQL qui utilise ta dll.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim connStr As String = "SERVER=localhost;DATABASE=xflows;UID=root;PASSWORD="
    Dim connection As New MySqlConnection(connStr)
    connection.Open()
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Ah d'accord, je comprends mieux déja ! Donc j'ai rajouté ca mais l'ide me dit que mon Imports MySql.Data ne contient aucun membre public ou est introuvable

    Comme je me demande si ce n'est pas du au fait que j'utilise la version 6.8.3 du driver je vais essayer avec une version précédente.

    Edit : avec une version plus vielle comme la 3.5 (http://dev.mysql.com/downloads/connector/odbc/3.51.html) je n'arrive meme pas a l'ajouter en tant que référence, ça me met "vérifier que ce fichier est accessible et qu'il s'agit d'un assembly ou d'un composant COM valide" je n'y comprends rien

  12. #12
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Attention !!

    ne confonds pas connecteur Net et connecteur ODBC.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Hum.. je pense que j'ai un peu confondu oui, j'ai donc ajouté dans les références le connector .NET 6.8.3 et non pas le ODBC, donc forcément ça ne correspond pas exact ?

  14. #14
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    Dans vos messages précédents, quand vous parliez de ça :
    Citation Envoyé par taspai Voir le message
    J'ai une base sql qui tourne en local avec phpmyadmin, j'ai installé le connector 6.8.3 : http://dev.mysql.com/downloads/connector/net/, j'ai ajouté
    la référence (c:\Program Files\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\MySql.Data.dll) -> il y a plusieurs dossier dans Assemblies, RT, v2.0, v4.0, v4.5
    Je remarque que vous avez récupéré la DLL dans le répertoire "c:\Program Files\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5\MySql.Data.dll"

    L'assemblie est la version du framework utilisé pour l'application.

    Vous êtes bien en framework 4.5 ?

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Je suis en version 4 (j'ai trouvé la version dans les options avancées de compilations) alors est ce qu'il vaut mieux que je mette le dll pour le framework 4 ou bien que je laisse cette dll et que je compile avec le framework 4.5 ? (désolé je suis nouveau sur le monde de windows et je ne suis pas encore bien à l'aise avec ce genre de choses)

  16. #16
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    il vaut mieux utiliser la DLL compatible avec le framework.

    Si le projet est un projet tout beau tout neuf, suffit de passer le projet en framework 4 vers 4.5 et utiliser le Mysql.Data.dll du répertoire v4.5.

    Si vous devez rester en framework 4, alors il faut ajouter aux références le Mysql.Data.dll du répertoire v4.0

    et ensuite se référencer à ce message :
    commentaire #10

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    J'ai donc laissé le framework 4 et changé le mysql.data.dll en prenant celui du dossier v4.

    Qu'est ce qui change réellement entre le connector .NET 6.8.3 et un connector ODBC x.x ? Y a t-il de grosses différences ?

  18. #18
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    il faudra également ajouter cette ligne d'import en plus sinon tu auras des surprises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports MySql.Data.MySqlClient;

  19. #19
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    J'ai un nouveau message d'erreur : "Authentication to host 'localhost' for user 'test' using method 'mysql_native_password' failed with message: Access denied for user 'test'@'localhost' (using password: YES)" ca veux dire qu'il essaye de se connecter correctement et donc que ca marche, vive les messages d'erreurs !!

    Merci énormément pour cette aide précieuse !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. acces impossible à une base MySQL via ODBC en déporté
    Par alakauf dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/03/2018, 18h48
  2. [AC-2010] Fonction connexion à une base mysql via vba
    Par diombo dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/06/2014, 06h22
  3. Connexion de Oracle XE sur une base Hyperfile via ODBC
    Par zouhenlai dans le forum Connexions aux bases de données
    Réponses: 8
    Dernier message: 13/01/2009, 19h38
  4. Réponses: 4
    Dernier message: 15/01/2008, 16h36
  5. Connexion à une base MySQL via une Servlet
    Par maxinformatique dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 25/05/2007, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo