Liaison entre les bases de donnés et une application c#

Description

Montre l'utilisation d'une interface pour la simplicité, et la flexibilité de connexion à différentes base de données de type MySQL, ACCESS, EXCEL, BASE TEXTE.

Source / Exemple :


using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace Linker
{

    /// <summary>
        /// retourne les anomalie de connexion en cas d'erreur
        /// </summary>
        /// <returns>string</returns>
    public delegate void retourAnomalie(object Anomalie);

    /// <summary>
    /// Interface de connexion au base de données
    /// </summary>
    public interface ILinkerable
    {

        #region "fonction"
        /// <summary>
        /// Obtient la chaine de connexion qui permet l'accés à la base de données
        /// </summary>
        /// <returns>string</returns>
        string ObtenirChaineConnexion();
        
        /// <summary>
        /// Récupére le résultat de la requete SQL dans une DataTable
        /// </summary>
        /// <param name="requete"></param>
        /// <returns>DataTable</returns>
        DataTable ExecuterRequeteSQL(string requete);

        /// <summary>
        /// Récupére le résultat de la requete SQL par référence dans une DataTable
        /// </summary>
        /// <param name="requete"></param>
        /// <param name="TableResultat"></param>
        void ExecuterRequeteSQL(string requete, ref DataTable TableResultat);

        /// <summary>
        /// Récupére le résultat d'une requete de type COUNT,SUM,...
        /// </summary>
        /// <param name="requete"></param>
        /// <returns>int</returns>
        int ExecuterRequeteSQLScalar(string requete);

        /// <summary>
        /// Envoi une requete sans retour de table, seulement en retour le nombre de ligne affectée
        /// </summary>
        /// <param name="requete"></param>
        /// <returns>int</returns>
        int ExecuterRequeteSQLNoQuery(string requete);

        /// <summary>
        /// permet de mettre à jour la chaine de connexion suite à une modification des propiétès
        /// </summary>
        void ReinitialisationConnexion();

        /// <summary>
        /// Test si la chaine de connexion est valide
        /// </summary>
        /// <returns>bool</returns>
        bool TestConnexion();

        /// <summary>
        /// Récupére la liste des bases (schéma) présent dans l'environement de la base de données
        /// </summary>
        /// <returns>Liste des bases existantes</returns>
        DataTable ObtenirListeBases();

        /// <summary>
        /// Récupére la liste des tables présent dans une BASE (schéma)
        /// </summary>
        /// <returns>Liste des tables existante dans une base de données</returns>
        DataTable ObtenirListeTable();

        /// <summary>
        /// Récupére le schéma des données. Nom de colonne et le type de colonne
        /// </summary>
        /// <returns>Schéma d'une table sous forme d'une DataTable</returns>
        DataTable ObtenirSchemaTable();

        /// <summary>
        /// Récupére les index de la table
        /// </summary>
        /// <returns>retourne les index de la table de la base de données</returns>
        DataTable ObtenirIndexTable();
        #endregion

        /// <summary>
        /// Obtient le schéma de connexion
        /// </summary>
        /// <returns>table contenant le schéma de connexion</returns>
        DataTable GetSchema();

        /// <summary>
        /// Obtient le schéma de connexion spécifié
        /// </summary>
        /// <param name="value">choix du schéma</param>
        /// <returns>table contenant le schéma de connexion</returns>
        DataTable GetSchema(string value);

        /// <summary>
        /// Obtient le schéma de connexion spécifié selon un type pé-défini
        /// </summary>
        /// <param name="value">Type pré-défini de schéma</param>
        /// <returns>table contenant le schéma de connexion</returns>
        DataTable GetSchema(enumTypeSchema value);

        #region "Propiétés"

        /// <summary>
        /// Définit le type d'instance réalisé
        /// </summary>
        enumTypeLinker TypeConnexion { get; }

        /// <summary>
        /// Retourne les messages d'anomalies
        /// </summary>
        string ANOMALIE { get; }

        /// <summary>
        /// Adresse IP du serveur ou Adresse du fichier de la base de données
        /// </summary>
        string Adresse { get; set; }

        /// <summary>
        /// Port de connexion pour un serveur IP(facultatif)
        /// </summary>
        uint PortConnexion { get; set; }

        /// <summary>
        /// Login de connexion à la base de données
        /// </summary>
        string Identifiant { get; set; }

        /// <summary>
        /// Mot de passe de l'utilisateur pour la connexion à la base de Données
        /// </summary>
        string MotDePasse { get; set; }

        /// <summary>
        /// Nom de la base sur laquelle le programme travaille(facultatif)
        /// </summary>
        string NomBase { get; set; }

        /// <summary>
        /// Nom de la table sur laquelle le programme travaille(facultatif)
        /// </summary>
        string NomTable { get; set; }

        /// <summary>
        /// Temps avant la déconnexion automatique à la base de données
        /// </summary>
        uint TimeOut {get; set;}

        #endregion

 
        /// <summary>
        /// variable déclenchant la récupération des erreurs !
        /// </summary>
        event retourAnomalie Anomalie;

    }// Fin de l'interface
}// Fin du NameSpace

Conclusion :


Ce code (complet dans le zip) est très facilement adaptable pour son usage personnel.

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.