Classe mysql

Description

Cette classe permet d'utiliser beacoup plus simplement MySQL avec C#. MySQL n'étant pas une base de données native pour c#, j'ai donc décidé, en m'appuyant sur la dll MySql.data.dll (disponible sur le site de mysql) de recréer mes propres methodes telles que mysql_connect, mysql_query, mysql_num_rows,...

Je ferais une mini aide pour pouvoir se servir de vette classe.

Je vous rapelle egalement qu'il faut inclure dans votre projet la dll MySql.data.dll. Vous pouvez laisser des commentaires pour m'aider dans la réalisation d'une classe plus fiable, je rapelle au passage qu'il ne s'agit que d'une version beta donc pas à 100% fiable.

Je vous conseille de compiler ce code comme une dll et l'inclure dans votre projet (using MySQL;) vous pourrez également lu'tiliser dans vb.net.

Source / Exemple :


using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
 
namespace MySQL
{
    public class SQL
    {
        public static bool mysql_connect(string string_connect)
        {
            try
            {
                ConnectionRessource = new MySqlConnection(string_connect);
                ConnectionRessource.Open();
                connected = true;
                return true;
            }
            catch (Exception Ex)
            {
                lastEx = Ex.Message;
                connected = false;
                return false;
            }
        }

        public static bool mysql_close()
        {
            if (connected)
            {
                try
                {
                    ConnectionRessource.Close();
                    connected = false;
                    return true;
                }
                catch (Exception Ex)
                {
                    lastEx = Ex.Message;
                    return false;
                }
            }
            else
            {
                lastEx = "Aucune connexion n'a encore été ouverte.";
                return false;
            }
        }

        public static string[][] mysql_query(string query)
        {
            try
            {
                com = new MySqlCommand(query, ConnectionRessource);
                dr = com.ExecuteReader();
                int count = 0;
                while (dr.Read())
                {
                    count++;
                }

                string[][] request = new string[count + 1][];
                request[0] = new string[dr.FieldCount];
                request[0][0] = count.ToString();
                dr.Close();

                com = new MySqlCommand(query, ConnectionRessource);
                dr = com.ExecuteReader();
                int j = 1;
                while (dr.Read())
                {
                    request[j] = new string[dr.FieldCount];
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        string tmp = dr.GetString(i);
                        request[j][i] = tmp;
                    }
                    j++;
                }
                dr.Close();
                return request;
            }
            catch(Exception)
            {
                string[][] request = new string[1][];
                return request;
            }
        }

        public static int mysql_num_rows(string[][] request)
        {
            return int.Parse(request[0][0]);
        }

        public static string mysql_error()
        {
            if (connected)
            {
                if (lastEx != "")
                {
                    return lastEx;
                }
                else
                {
                    return "Il n'y a encore y aucune erreur";
                }
            }
            else
            {
                return "Erreur : Aucune connection SQL n'a encore été établie";
            }
        }

        private static bool connected = false;
        private static string lastEx = "";
        private static MySqlCommand com;
        private static MySqlDataReader dr;
        private static MySqlConnection ConnectionRessource;
    }
}

Conclusion :


Manuel d'utilisation:

- Pour vous connecter à une base de données MySQL, utilisez la syntaxe suivante :
prototype -> bool mysql_connect(string string_connect) [aucune surcharge]
SQL.mysql_connect("Server=base_de_donnes;Database=nom_base_de_donnes;User ID=pseudo;Password=mot_de_passe;");

- Pour effectuer une requete :
prototype -> string[][] mysql_querry(string querry) [aucune surcharge]
string[][] sql1 = SQL.mysql_query("SELECT * FROM `users` WHERE id='1'");

Pour pouvoir ensuite extraire les élément contenu dans le tableau sql1 vous devez utiliser une boucle for:
for(int i=1;i<=sql1[0][0];i++)
{
Console.Writeline(sql[i][3].toString()); //sql[i][3] signifie le champ i et la collone 3
Console.Writeline(sql[i][6].toString()); //sql[i][6] signifie le champ i et la collone 6
}

- Pour compter le nombre de résulats :
prototype -> int mysql_num_rows(string[][] request) [aucune surcharge]
int count = SQL.mysql_num_rows(sql1); //ou sql1 a été instancié avant grace à la fonction mysql_query

- Pour afficher la dernière erreur :
prototype -> void mysql_error(void) [aucune surcharge]
SQL.mysql_error();

- Pour se deconnecter de la base de données
prototype -> bool mysql_close(void) [aucune surcharge]
SQL.mysql_close();

/!\ Avertissement
Cette classe étant en version beta, je ne garantis pas sa stabilité, pour plus de fiabilité, je vous conseille de mettre des blocs try catch ou try finnaly un peut partout ou vous utilisez ma classe, essentielement avec la methode mysql_query !

Codes Sources

A voir également

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.