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

Windows Forms Discussion :

[C#] [MySQLDriverCS] et [ByteFX] drivers .Net pour MySql [Trucs & Astuces]


Sujet :

Windows Forms

  1. #1
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut [C#] [MySQLDriverCS] et [ByteFX] drivers .Net pour MySql
    Salut à tous,

    Me référent aux divers post pour connecter un base MySQL j'opte pour le drivers .NET MySQLDriverCS.

    J'ai bien inclu la REFERENCE à MySQLDriverCS.DLL, tenté de mettre la DLL dans le répertoire .bin du projet.

    Quand je compile pas de problème et quand j'execute : j'ai le message suivant :

    Une exception non gérée du type 'System.IO.FileNotFoundException' s'est produite dans system.windows.forms.dll

    Informations supplémentaires*: Le fichier ou l'assembly nommé System.Data, ou l'une de ses dépendances, est introuvable.

    Ci après le code :

    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
     
    using System.Data;
    using MySQLDriverCS;
     
    ....
     
     
    ....
     
    private void button2_Click(object sender, System.EventArgs e)
    		{
             MySQLConnection DBConn; 
    			DBConn = new MySQLConnection( new MySQLConnectionString("Server","Base","User","Pass").AsString); 
     
    			DBConn.Open();
    			DBConn.Close();
    		}

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut,

    j'ai eu exactement le meme probleme et je n'ai jamais trouve de solution, c pkoi j'ai utilise le driver myODBC :/

    ++

  3. #3
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Avec MyODBC tu peux passer dynamiquement les paramètres de connexion ?

    As tu une doc sur l'utilisation de MyODBC en .NET ?

  4. #4
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Impossible de trouver quoi que ce soit sur cet exception avec MySQLDriverCS, quelqu'un utilise t'il ce driver pour attaquer une BDD distante, si oui, aurais t'il un extrait de code...

    [HELP !!! PLEASE]

  5. #5
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418

  6. #6
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Oui j'ai vu, je pensais au départ utiliser ODBC et c'est en cherchant des infos sur l'utilisation d'ODBC que je suis tombé là dessus et que je voulais suivre le conseil de DrQ... Donc utiliser MySQLDriverCS.

  7. #7
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Clair qu'au niveau perf y a pas photo et que ODBC c''est loin d'être le top pour un acces à un SGBD.

    Mais j'ai jamais vu personne sortir une procédure qui fonctionne pour se cannecter à mysql via des drivers natifs

    y a bien d'autres drivers natifs en béta : http://sourceforge.net/projects/mysqlnet/

    à éssayer. En tout cas si tu trouve un solution pour se connecter à une BD mySQL via des drivers natif tiens moi au courrant !!! je mets ça direct dans les faqs

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Voila tout le probleme.

    J'ai aussi voulu utiliser MySQLDriverCS parcque plus performant mais j'ai jamais vu un seul code source qui fonctionnait :/

    ++

  9. #9
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    ça yest j'ai trouvé, je mets tout ça en ordre et je balance asap.

  10. #10
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Déjà première piste, j'ai viré Visual Studio .NET, le SDK, le Framework et j'ai réinstallé :

    La dernière version du SDK en français
    La dernière version du Framework 1.1 en français
    Et je suis passé à C#Builder (moins lourd donc sur mon petit portable ça évite déjà les plantage dus à VS.NET)

    Ensuite faire super gaffe à la syntaxe de commande MySQLConnection et autre genre espace mal foutus ça merde.

    Je fais un premier exemple connection + Select et je balance.

  11. #11
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Alors voilà un petit exemple sur une table "livre" contenant les champs ISBN, TITRE, DATEPAR, EDITEUR

    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
     
    public void Program()
    {
     
    	MySQLConnection conn =  new MySQLConnection( new MySQLConnectionString("le_nom_du_serveur","le_nom_de_la_base_de_données","le_login","le_password").AsString );
    	ResultTextBox.Text = "Connexion à la base de données\n";
     
    	conn.Open();
     
    	// Méthode 1 MysqlCommand
     
    	ResultTextBox.Text += "Constitution de la requète Méthode 1 : MySQLCommand\n";
    	MySQLCommand cmd = new MySQLCommand("select TITRE,ISBN, DATEPAR from livre where EDITEUR = 'Dunod' and DATEPAR > '200301' limit 0,10",conn);
    	ResultTextBox.Text += "Execution de la requète\n";
    	MySQLDataReader reader = cmd.ExecuteReaderEx();
    	ResultTextBox.Text += "Lecture des résultats\n";
    	while(reader.Read())
    	{
    		ResultTextBox.Text += "ISBN :"+reader.GetString(1)+ " , Parution :"+reader.GetString(2)+" , Titre:"+reader.GetString(0)+"\n";
    	}
    	reader.Close();
    	cmd.Dispose();
     
    	// Méthode 2 MySQLSelectCommand
     
    	ResultTextBox.Text += "Constitution de la requète Méthode 2 : MySQLSelectCommand\n";
    	DataTable dt = new MySQLSelectCommand(conn, new string[] {"TITRE","ISBN","DATEPAR"}, new string[] {"livre"}, new object[,] {{"EDITEUR","=","Dunod"},{"DATEPAR",">","200301"}}, null, null, true, 0, 10, false).Table;
    	foreach(DataRow row in dt.Rows)
    	{
    		ResultTextBox.Text += "ISBN:"+row["ISBN"].ToString()+" ,Parution :"+row["DATEPAR"].ToString()+" , TITRE:"+row["TITRE"].ToString()+ "\n";
    	}
     
    	ResultTextBox.Text += "Fermeture de la Connexion\n";
    	conn.Close();
    	ResultTextBox.Text += "Process de lecture terminé\n";
    }
    L'utilisation de la commande MySQLSelectCommande est assez hard, je nais pas encore fait de test pour savoir si elle est plus rapide, j'ai effectué l'essai sur un table de 700 000 records ça passe très bien et même très vite, le tout était inséré dans la méthode Load d'un Form et les résultats affichés dans une RichTextBox, je ne suis tout nouveau tout beau en C# donc s'il il y a des trucs pas très beaux excusez moi (mieux faite moi part de ce qui ne va pas) attention comme les requêtes ne sont pas incluses dans un try{}catch{} (que je n'ai pas testé non plus) la moindre erreur y compris au niveau d'une requête engendre une exeption non gérée donc gros plantage.

  12. #12
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Attention j'ai oublié de préciser ne pas oubler de faire REFERENCE à la DLL MySQLDriverCS.dll

    VS.NET : menu projet + ajouter référence

    C#Builder : fenêtre de projet + REFERENCES + Nouvelle références / Parcourir

    csc : csc /lib:chemin_ou_on_trouve_les_dll /r:les_dll_separées_par_des_points_vigules

  13. #13
    Invité
    Invité(e)
    Par défaut
    Passé en post-it par Florian, sera rajouté à la FAQ dans un avenir proche.

  14. #14
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Salut,

    c sympa je vai enfin pouvoir essayer avec ce driver, comme ca maintenant on aura le choix entre odbc et mysqldriver (choix qui est vite fait d'ailleurs :/)

    ++

  15. #15
    Invité
    Invité(e)
    Par défaut
    Où le trouver:

    http://sourceforge.net/projects/mysqldrivercs/

  16. #16
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Citation Envoyé par Florian
    Passé en post-it par Florian, sera rajouté à la FAQ dans un avenir proche.
    Je crois qu'on pourrait carrément faire un article là dessus

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 53
    Points : 58
    Points
    58
    Par défaut re
    salut,

    je viens d'essayer ton code pour voir avec VS .NET,

    il marche niquel faut juste mettre la dll dans windows/system32 pour être tranquille

    et effectivement, s'il y a une seul erreur boum sa plante direct

    ah la la c vraiment strict comme langage sa me change du PHP

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Février 2004
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 133
    Points : 112
    Points
    112
    Par défaut
    si vous voulez j'ai dévellopé une petit class dédiée à mysql ...

  19. #19
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut
    Dans la même veine et surtout pour ceux qui souhaiterai s'interresser à Mono:: (projet d'un .NET open source notamment pour les environnement unix) un autre driver MySQL pour ADO.NET ByteFX et avec la doc qui va avec ICI, un bon moyen pour que vos appli fonctionnent partout....

  20. #20
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Points : 127
    Points
    127
    Par défaut Utilisation de Byte FX en mode connecté
    Le petit exemple qui suit avec ByteFx en mode connecté:

    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
     
    		// Chaine de caractères de connexion.
    		string stringMaConnexion =
    			"server = localhost ; uid= monlogin ; pwd = monmotdepasse; database = madatabase";
     
    		// Requête SQL pour récupérer des données.
    		string stringMaRequete = "SELECT * FROM cdrom limit 0,5";
     
    		// Création d'un objet connexion.
    		IDbConnection maConnexion = new MySqlConnection(stringMaConnexion);
     
    		// Création d'une commande.
    		IDbCommand Commande = new MySqlCommand(stringMaRequete,(MySqlConnection)maConnexion);
     
    		// Ouverture de la connexion.
    		maConnexion.Open();
     
    		// affichage de l'état de la connexion
    		richTextBox1.AppendText("Etat de la Connexion : " + maConnexion.State + "\n");
     
    		// Exécution de la commande.
    		IDataReader Reader = Commande.ExecuteReader();
     
    		// Affichage des colonnes 2 et 3 de la table cdrom.
    		while (Reader.Read()) 
    			richTextBox1.AppendText(Reader.GetString(2)+" "+Reader.GetString(3)+"\n");
     
    		// fermeture DataReader .
    		Reader.Close();
    		// fermeture connexion.
    		maConnexion.Close();
    Et voilou les ptits loups

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/03/2011, 11h58
  2. Create Database pour MySql avec ADO.NET
    Par mappy dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 14/01/2008, 12h13
  3. le driver Firebird pour .NET
    Par nozostan dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 01/12/2007, 21h12
  4. Cherche Driver JDBC pour MySQL 5.0
    Par mosstu126 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/02/2006, 00h36
  5. Driver postgre pour asp.net
    Par vonbier dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 02/10/2003, 13h35

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