Publier Profil Docs FAQ

Ebauche d'article

Bases de ADO.NET


Basé sur :

http://dotnet.developpez.com/tutoriels/ado1/csharp/
http://dotnet.developpez.com/tutoriels/ado2/csharp/

Voir aussi :

http://www.codersource.net/csharp_adonet_tutorial_ed.html
http://msdn2.microsoft.com/en-us/library/kbbwt18a(VS.80).aspx
http://msdn2.microsoft.com/en-us/library/33y2221y(VS.80).aspx

http://msdn2.microsoft.com/en-us/library/bsyy3scy(VS.80).aspx

Avant d'utiliser les fonctions d'ADO.Net (avec une base SQL Server),assurez vous d'avoir le namespace System.Data.SqlClient dans le code source

using  System.Data.SqlClient;

SqlConnection

SqlCommand

* ExecuteReader -> DataReader
* ExecuteScalar ->Resultat unitaire
* ExecuteNonQuery -> ne retourne pas delignes de résultat (convient aux INSERT, UPDATE, DELETE ...)

SqlDataReader

L'objet DataReader est obtenu a partir de la fonction ExecuteReader. Les données sont accessibles en lecture seule.
On peut avancer dans le jeu de données avec la méthode Read, généralement utilisé dans une boucle while : while (oReader.Read()).
L'accès aux données peut se faire en fonction du type des données en fonction du numéro de colonne. Par exemple : iColonne = oDataReader.GetInt32(0) , (la colonne 0 contient un type Int, on peut utiliser d'autres fonctions comme GetString dans d'autres cas de figure). On peut aussi accéder au nom de la colonne avec la méthode GetName.

La méthode NextResult permet de passer au resultat de la requète suivante, sil'on a executé plusieurs requètes a la suite (enchainement de requètes SELECT).

Procédures Stockées

Dans le cas d'utilisation de procédures stockées on précisera a l'objet de commande le type de commande : oCmd.CommandType = CommandType.StoredProcedure;
On fixe les parametres une fois l'objet Command crée et avant l'ouverture de la connexion a la base. Par exemple :
SqlParameter oParam = oCmd.Parameters.Add ("@nom",SqlDbType.Char,25,Nom);
oParam.Value = "Valeur";

ou plus simplement comme ceci :

SqlParameter oParam = oCmd.Parameters.Add ("@nom",SqlDbType.Char,25,Nom).Value = "Valeur";

DataSet

DataAdapter

cet objet permet l'interaction entre l'objet DataSet et la base de données. On peut definir plusieurs types de commandes pour communiquer avec la BDD :

- SelectCommand
- InsertCommand
- UpdateCommand
- DeleteCommand

La méthode Fill permet en association avec SelectCommand de remplir le DataSet avec les données de la BDD. Les paramètres de cette méthodes sont un objet DataSet ainsi qu'un objet DataTable.

oSqlDataAdapter.Fill(oDataSet,"Customers");

Ajouter une rangée a un DataSet

il faut tout d'abord construire un objet DataRow puis faire appel aux méthodes DataSet.Tables.NewRow et DataSet.Tables.Rows.Add

DataRow oDataRow;
oDataRow = oDataSet.Tables["Categories"].NewRow();
oDataRow["CategoryName"]= "Wine";
oDataRow["Description"]= "French Wine";
oDataSet.Tables["Categories"].Rows.Add(oDataRow);

Obtenir le nombre d'enregistrements d'un DataSet

Utiliser la méthode DataSet.Tables.Rows.Count