Page d'Accueil

Connexion à une base de données

 

Introduction

Pour utiliser ou accéder à une base de données, un utilisateur la lance typiquement et y ouvre les objets nécessaires. Vous aussi pourriez avoir besoin d'accéder à une base de données mais avec le code. Pour accéder programmaticallement à une base de données en utilisant la bibliothèque ADO, vous devez d'abord établir une connexion. Pour soutenir ceci, le namespace ADODB fournit une interface appelée Connection. Dans .NET Framework, l'interface de connexion est définie par une classe appelée ConnectionClass.

Pour créer une connexion à une base de données, déclarez une variable de type connection ou ADODB.ConnectionClass et l'initialiser utilisant l'opérateur new. Ceci serait fait comme suit :

using System;

public class Program
{
    static int Main()
    {
        ADODB.Connection conDatabase = new ADODB.Connection();
        return 0;
    }
}

Ceci peut également être fait comme suit :

using System;
using ADODB;

public class Program
{
    static int Main()
    {
        ConnectionClass conDatabase = new ConnectionClass();

        return 0;
    }
}

Ouverture d'une connexion

Après la déclaration et l'initialisation de l'objet Connection, vous pouvez alors ouvrir la connexion. Pour soutenir ceci, l'interface connection (la classe ConnectionClass) est équipée d'une méthode appelée Open. La syntaxe de la méthode de Connection.Open est :

public void _Connection.Open(string ConnectionString,
     	  	             string  UserID,
     		             string  Password,
     		             int Options);

Comme vous pouvez voir, cette méthode prend quatre arguments et tous sont exigées.

Chaîne de connexions

En établissant une connexion à une base de données, vous avez deux alternatives, vous pouvez utliser le premier argument à la méthode Connection.Open () ou vous pouvez séparément créer une chaîne de connexions.

La chaîne de connexion est un texte fait de diverses sections séparées par des points-virgule. Chaque section est faite d'une expression  Key=Value. Basé sur ceci, une chaîne de connexion utilise la formule suivante :

Key1=Value1;Key2=Value2;Key_n=Value_n;

Une des expressions que vous pouvez indiquer dans la chaîne de connexion est le nom du fournisseur. Pour ce faire, tapez Provider= suivi du fournisseur que vous utilisez. Pour la plupart des bases de données nous créerons ou utiliseront ici, le fournisseur sera Microsoft.JET.OLEDB.4.0. Ceci signifie que notre chaîne de connexion peut commencer :

using System;
using ADODB;

public static class Program
{
    static int Main()
    {
        ConnectionClass conDatabase = new ConnectionClass();

        string  strConnection= "Provider=Microsoft.Jet.OLEDB.4.0;". . .

        return 0;
    }
}

Vous pouvez également inclure la valeur du fournisseur dans de simple guillemets pour le délimiter.

La deuxième partie de la chaîne de connexion indique la source des données. Pour fournir ces informations, vous pouvez assigner le chemin et le nom de la base de données à l'attribut    Data Source. Voici un exemple :

using System;
using ADODB;

public static class Program
{
    static int Main()
    {
        ConnectionClass conDatabase = new ConnectionClass();

        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Data Source='C:\\Programs\\Exercise1.mdb';";

        return 0;
    }
}

Il est important de noter que la teneur de la chaîne de connexion diffère d'un fournisseur à l'autre. Si vous travailliez sur une base de données Microsoft SQL Server database, votre chaîne de connexion serait différente de celle qui précède, faite pour la base de données Microsoft JET. Par exemple, si vous travailliez sur un MSDE ou sur Microsoft SQL Server database, le fournisseur serait SQLOLEDB.

Après avoir créé la chaîne de connexion, vous pouvez alors la passer à la méthode Connection.Open () comme premier argument. Voici un exemple :

using System;
using ADODB;

public static class Program
{
    static int Main()
    {
        ConnectionClass conDatabase = new ConnectionClass();

        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Data Source='C:\\Programs\\Exercise1.mdb';";

        conDatabase.Open(strConnection, );
        return 0;
    }
}

Les accréditations d'ouverture

En créant votre base de données, si vous travaillez dans un environnement bloqué et la base de données exige l'authentification, vous pouvez devoir fournir les accréditations d'ouverture, qui incluent un username (nom de l'utilisateur) et un mot de passe. Normalement, ces propriétés sont la plupart du temps appliquées si vous travaillez sur Microsoft SQL Server database.

Pour indiquer les accréditations d'ouverture en accédant à la base de données, vous pouvez passer le deuxième et le troisième arguments à la méthode Open() de la classe Connection. Si vous n'avez pas cette information, vous pouvez passer chaque argument comme une chaîne vide. Voici un exemple :

using System;
using ADODB;

public class Program
{
    static int Main()
    {
        ConnectionClass conDatabase= new ConnectionClass();

        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Data Source='C:\\Programs\\Exercise1.mdb';";

        conDatabase.Open(strConnection, "", "", );
        return 0;
    }
}

Le quatrième argument de la méthode Connection.Open () indique si la méthode devrait retourner après établissement de la connexion. Si vous n'avez pas décider, vous pouvez passer cet argument en tant que 0 :

using System;
using ADODB;

public class Program
{
    static int Main()
    {
        ConnectionClass conDatabase = new ConnectionClass();

        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Data Source='C:\\Programs\\Exercise1.mdb';";

        conDatabase.Open(strConnection, "", "", 0);
        return 0;
    }
}

Exécution d'un rapport SQL

Après avoir créé un connexion à une base de données, vous pouvez indiquer ce que vous voulez faire sur la base de données. Une des opérations les plus communes que vous pouvez effectuer est de lui soumettre un rapport (à la connexion). C'est également équivalent à exécuter le rapport.

Pour exécuter un rapport, la classe Connection est équipée de la méthode Execute (). Sa syntaxe est :

public Recordset _Connection.Execute(string CommandText,
 			             out object RecordsAffected,
  			             int Options);

Le premier argument, CommandText, peut être un type de rapport que nous étudierons dans de futures leçons. Le deuxième argument, passé par la référence, indique le nombre d'enregistrement qui ont été affectés par l'opération. Le troisième argument indique comment le fournisseur devrait évaluer la commande. si vous ne décidez pas, passer cet argument en tant que 0.

Voici un exemple d'appel de la méthode Connection.Execute () :

using System;
using ADODB;

public class Program
{
    static int Main()
    {
        object objAffected;
	string strStatement = "Something";
        ConnectionClass conDatabase = new ConnectionClass();

        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Data Source='C:\\Programs\\Exercise1.mdb';";

        conADO.Open(strConnection, "", "", 0);
        conADO.Execute(strStatement, out objAffected, 0);

        return 0;
    }
}

Quand elle est appelée, la méthode Execute () de classe Connection examine et exécute son (premier) argument, dans ce cas-ci strStatement. Si cette méthode réussit, elle renvoie une liste d'enregistrements.

Clore une connexion

En utilisant une connexion, elle consomme les ressources dont d'autres applications peuvent avoir besoin. Par conséquent, après l'avoir utilisé, vous devriez la clôturer et libérer les ressources qu'elle utilisaient, ainsi elles peuvent être rendues disponibles aux autres pièces de l'ordinateur. Pour clore une connexion, la classe Connection est équipée de la méthode  Close(). Ceci peut être fait comme suit :

using System;
using ADODB;

public class Program
{
    static int Main()
    {
        object objAffected;
	string strStatement = "Something";
        ConnectionClass conDatabase = new ConnectionClass();

        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                               "Data Source='C:\\Programs\\Exercise1.mdb';";

        conDatabase.Open(strConnection, "", "", 0);
        conDatabase.Execute(strStatement, out objAffected, 0);

        conADO.Close();
        return 0;
    }
}

Une meilleure manière consisterait probablement à utiliser un bloc try… finally pour clore la connexion. Voici un exemple :

using System;
using ADODB;

public static class Program
{
    static int Main()
    {
        object objAffected;
        string strStatement = "Something";
        ConnectionClass conDatabase = new ConnectionClass();

        try
        {
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                                   "Data Source='C:\\Programs\\Exercise1.mdb';";

            conDatabase.Open(strConnection, "", "", 0);
            conDatabase.Execute(strStatement, out objAffected, 0);
        }
        finally
        {
            conADO.Close();
        }

        return 0;
    }
}
  

Précédent Copyright © 2007, Yevol Suivant