Probleme pour accéder a une base de donnée mysql [Résolu]

cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention - 20 déc. 2008 à 19:39 - Dernière réponse : cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention
- 20 déc. 2008 à 22:24
Bonjour j'utilise Easy Php2.0b1, avec Mysql 5.0.22, je souhaiterais réaliser un logiciel de gestion d'un club de football.
J'ai télécharger un installer d'un driver http://dev.mysql.com/downloads/connector/net/5.0.html afin de pouvoir accéder a cette base.
Auparavant je travaillais avec Access , mais je souhaiterais changer.
Voila un extrait de mon code, du moins de la fonction qui me permet de me connecter et de réaliser des requêtes SQL.
Pour ce qui est de la chaîne de connexion, j'ai repris ce site http://www.connectionstrings.com/mysql

Imports System.Data.SqlClient
Imports System.Data.OleDb

Public Class F_Menu
 Public Function ReqSelection(ByVal req As String, ByVal nomTable As String) As DataTable
        Dim cnx As OleDbConnection
        Dim cmd As OleDbCommand
        Dim ds As DataSet  'Va être utilisé dans plusieurs procédures
        'Instanciation et ouverture d'une connexion
        cnx = New OleDbConnection("Driver={MySQL ODBC 5.0 Driver};Server=localhost;Database=logifoot; User=root;Password=;Option=3;")
        cnx.Open()
        'Instanciation d'un objet Command
        cmd = New OleDbCommand(req)
        cmd.Connection() = cnx
        'Instanciation d'un DataSet
        ds = New DataSet
        'Instanciation d'un DataAdapter
        'Déclaration Objet DataAdapter
        Dim da As OleDbDataAdapter
        da = New OleDbDataAdapter()
        da.SelectCommand = cmd 'L'objet Command contient l'instruction SQL
        da.Fill(ds, nomTable)  'Remplissage d'une table Destination dans le  DataSet à partir du DataAdapter
        Return ds.Tables(nomTable)
    End Function
End class

Lorsque je teste mon début d'application, j'obtiens ce message d'erreur:
Un fournisseur OLE DB n'était pas spécifié dans ConnectionString. Par exemple, 'Provider=SQLOLEDB;'.

Donc je pense que mon Imports System.Data.OleDb est spécifique à acess et donc inutile ici et que mes oledbadapter() doivent être remplacé par une équivalence pour une bdd mysql.

Est ce que quelqu'un peut m'aider.
Merci
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 20 déc. 2008 à 22:03
3
Merci
Il faut probablement que tu rajoute la référence dans ton projet.

Menu Projet/Propriété, onglet Références, tu fais Ajouter. Dans l'onglet .Net tu choisis la référence qui doit s'appeller, je pense, System.Data.MySqlClient

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 20 déc. 2008 à 20:44
0
Merci
D'une part, tu n'as pas besoin de SQLClient. Les connecteurs de SQLClient sont à utiliser avec Microsoft SQLServer, ce n'est pas ton cas.

Les connecteurs OLEdb sont à utiliser pour toute connection qui n'est pas sur Oracle, SQLServer et qui ne passe pas par une source ODBC.

Dans le cas présent, tu utilise le driver ODBC de MySql, tu devrais peut-etre donc essayer d'utiliser les connecteurs ODBC à la place de OLEdb.

Imports System.Data.Odbc

Public Class F_Menu
 Public Function ReqSelection(ByVal req As String, ByVal nomTable As String) As DataTable
        Dim cnx As OdbcConnection
        Dim cmd As OdbcCommand
        Dim ds As DataSet  'Va être utilisé dans plusieurs procédures
        'Instanciation et ouverture d'une connexion
       
cnx = New OdbcConnection("Driver={MySQL ODBC 5.0
Driver};Server=localhost;Database=logifoot;
User=root;Password=;Option=3;")
        cnx.Open()
        'Instanciation d'un objet Command
        cmd = New OdbcCommand(req)
        cmd.Connection() = cnx
        'Instanciation d'un DataSet
        ds = New DataSet
        'Instanciation d'un DataAdapter
        'Déclaration Objet DataAdapter
        Dim da As OdbcDataAdapter
        da = New OdbcDataAdapter()
        da.SelectCommand = cmd 'L'objet Command contient l'instruction SQL
        da.Fill(ds, nomTable)  'Remplissage d'une table Destination dans le  DataSet à partir du DataAdapter
        Return ds.Tables(nomTable)
    End Function
End class

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention - 20 déc. 2008 à 20:59
0
Merci
Merci beaucoup pour ta reponse casy, j'ai essayé avec ton code, voila l'erreur qui s'affiche dorénavant:

ERROR [IM002] [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié
Commenter la réponse de cs_mickael56100
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 20 déc. 2008 à 21:26
0
Merci
Ok, donc en fouillant sur le site de MySQL, je pense avoir compris.

Le driver que tu as installer a dû te rajouter un namespace dans VisualStudio. Donc à la place de System.Data.Oledb ou System.Data.Odbc, tu dois avoir aussi System.Data.MySQLClient
C'est donc qu'il va falloir utiliser. Mais il va donc falloir aussi changer la chaine de connection :

 Imports System.Data.MySqlClient
Public Class F_Menu
 Public Function ReqSelection(ByVal req As String, ByVal nomTable As String) As DataTable
        Dim cnx As MySqlConnection
        Dim cmd As MySqlCommand
        Dim ds As DataSet  'Va être utilisé dans plusieurs procédures
        'Instanciation et ouverture d'une connexion
       
cnx = New MySqlConnection("Server=localhost;Database=logifoot;
User=root;Password=;")
        cnx.Open()
        'Instanciation d'un objet Command
        cmd = New MySqlCommand(req)
        cmd.Connection() = cnx
        'Instanciation d'un DataSet
        ds = New DataSet
        'Instanciation d'un DataAdapter
        'Déclaration Objet DataAdapter
        Dim da As MySqlDataAdapter
        da = New MySqlDataAdapter()
        da.SelectCommand = cmd 'L'objet Command contient l'instruction SQL
        da.Fill(ds, nomTable)  'Remplissage d'une table Destination dans le  DataSet à partir du DataAdapter
        Return ds.Tables(nomTable)
    End Function
End class

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Commenter la réponse de cs_casy
cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention - 20 déc. 2008 à 21:41
0
Merci
Désormais, il me souligne tout ce que tu as mis en rouge :
Imports System.Data.MySqlClient
MySqlConnection
MySqlCommand
MySqlConnection
MySqlCommand
MySqlDataAdapter
MySqlDataAdapter()

Avertissement    1    L'espace de noms ou le type spécifié dans les Imports 'System.Data.MySqlClient' ne contient aucun membre public ou est introuvable. Vérifiez que l'espace de noms ou le type est défini et qu'il contient au moins un membre public. Vérifiez que le nom de l'élément importé n'utilise pas d'autres alias.

Erreur    2    Type 'MySqlConnection' non défini. (même erreur pour les suivant)
Commenter la réponse de cs_mickael56100
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 20 déc. 2008 à 22:00
0
Merci
Salut,


Il faut installer le provider mysql et ajouter les references sur les DLL

http://dev.mysql.com/downloads/connector/net/5.2.html
Commenter la réponse de nhervagault
cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention - 20 déc. 2008 à 22:05
0
Merci
j'ai installé le provider j'utilise le 5.1 enfin j'ai installé également le 5.2

Comment ajouter les références sur les DLL?
Commenter la réponse de cs_mickael56100
cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention - 20 déc. 2008 à 22:19
0
Merci
merci casy j'avais pas vu ton message.
bon cela ne fonctionne toujours pas mais bon. :s
Commenter la réponse de cs_mickael56100
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 20 déc. 2008 à 22:22
0
Merci
Il est ou le probleme?
Commenter la réponse de nhervagault
cs_mickael56100 94 Messages postés vendredi 12 septembre 2008Date d'inscription 19 mai 2012 Dernière intervention - 20 déc. 2008 à 22:24
0
Merci
Cela fonctionne désormais, merci beaucoup vous deux, vous m'avez énormément aidé, je vais pouvoir avancé maintenant.
Un grand merci à casy, ton aide m'a été très précieuse

Imports MySql.Data.MySqlClient
Imports MySql.Data

Public Class F_Menu
    Public Function ReqSelection(ByVal req As String, ByVal nomTable As String) As DataTable
        Dim cnx As MySqlConnection
        Dim cmd As MySqlCommand
        Dim ds As DataSet  'Va être utilisé dans plusieurs procédures
        'Instanciation et ouverture d'une connexion
        cnx = New MySqlConnection("Server=localhost;Database=logifoot; User=root;Password=;")
        cnx.Open()
        'Instanciation d'un objet Command
        cmd = New MySqlCommand(req)
        cmd.Connection() = cnx
        'Instanciation d'un DataSet
        ds = New DataSet
        'Instanciation d'un DataAdapter
        'Déclaration Objet DataAdapter
        Dim da As MySqlDataAdapter
        da = New MySqlDataAdapter()
        da.SelectCommand = cmd 'L'objet Command contient l'instruction SQL
        da.Fill(ds, nomTable)  'Remplissage d'une table Destination dans le  DataSet à partir du DataAdapter
        Return ds.Tables(nomTable)
    End Function
End Class
Commenter la réponse de cs_mickael56100

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.