ADO.NET / Connexion à une base de données (C#)

by Fabien Lavocat 26. November 2007 07:50

Dans cet exemple nous utiliserons une connexion générique (adaptable pour tout type de données)

Le but de cet article de comprendre comment il est possible d’exploiter la technologie ADO.NET afin de se connecter de façon générique à un serveur SQL distant et d’executer une requête SQL.
Nous n’utiliserons pas Linq-to-SQL.

Tout d’abord ajoutons à notre projet un fichier de configuration contenant notre chaine de connexion:

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <configuration>
   3:  <connectionStrings>
   4:   <add name="myConx" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;
   5:   AttachDbFilename=C:\Documents and Settings\toto.ADMIN3B86\Bureau\northwind.mdf;
   6:   Integrated Security=True;Connect Timeout=30;User Instance=True"/>
   7:  </connectionStrings>
   8: </configuration>


Et voici le code qui nous permettra de se connecter à une base de donnée distante et de remplir un composant de type datagridview :

   1: DbProviderFactory monprovider = null;
   2: DbConnection cnx = null;
   3: try
   4: {
   5:     //Création du provider pour créer une connection générique
   6:     //On utilise la chaine de caractère du provider (System.Data.SqlClient)
   7:     //dans App.config pour se connecter
   8:     //On ajoute System.Configuration dans les using (ainsi que dans les références)
   9:     monprovider = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["myConx"].ProviderName);
  10:     //On se connecte en utilisant la chaine de connexion de notre fichier de configuration
  11:     cnx = monprovider.CreateConnection();
  12:     cnx.ConnectionString = ConfigurationManager.ConnectionStrings["myConx"].ConnectionString;
  13:     cnx.Open();
  14:     //Connexion
  15:     //On execute une requête
  16:     DbCommand marequete = cnx.CreateCommand();
  17:     marequete.CommandText = "SELECT * FROM Employees;";
  18:     //Notre requête SQL
  19:     DbDataReader resultat = marequete.ExecuteReader();
  20:     //On rempli la datagrid par rapport au résultat
  21:     DataGridView1.DataSource = resultat.GetSchemaTable();
  22: }
  23: catch (Exception ex)
  24: {
  25:     MessageBox.Show(ex.Message);
  26: }
  27: finally
  28: {
  29:     cnx.Close();
  30: }

 

Mots clés Technorati : ,

Tags: ,

Tutoriaux .NET

Comments

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



About

Fabien Lavocat

Lavocat Fabien
Ingénieur Multimédia - TMM Communication



"Blog-Microsoft.fr is an independent blog and is not affiliated with, nor has it been authorized, sponsored, or otherwise approved by Microsoft Corporation."

Contactez-moi Send mail

MVP
Microsoft Most Valuable Professional
Client Application Development