Professional Documents
Culture Documents
www.cours-ofppt.com
ROYAUME DU MAROC
www.cours-ofppt.com
www.cours-ofppt.com
Sommaire
1.
2.
3.
4.
5.
6.
7.
8.
9.
Introduction.....................................................................................2
Que nous apporte ADO .NET ?............................................................2
Choix d'un fournisseur de donnes .NET...............................................3
Le modle objet ADO .NET.................................................................4
L'objet Connection............................................................................5
L'objet Command..............................................................................6
L'objet DataReader............................................................................7
Comment appeler une procdure stocke ?..........................................9
Conclusion.....................................................................................11
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
1 - 14
1.Introduction
Avec .NET, Microsoft propose sa dernire technologie d'accs aux donnes ADO .Net.
C'est un ensemble de classes permettant de rcuprer et de manipuler des donnes et
qui fait partie intgrante de la nouvelle plate-forme appele .Net Framework.
Si vous tes habitus aux dveloppements utilisant les ADO, vous allez constater que ces
nouvelles classes sont diffrentes tant dans la syntaxe que dans la dmarche de
conception propose.
Nous allons prsenter dans cet article les nouveauts ADO.Net, le modle ADO.Net ainsi
que les objets Connection, Command et DataReader en prcisant quand ce sera
ncessaire, les quivalences avec les ADO.
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
2 - 14
Description
Fournisseur de donnes spcifiques pour SQLServer V7 ou
System.Data.SqlClient
suprieure
Propose la gestion de sources de donnes accdes via un
System.Data.OleDb
driver OleDb
Propose la gestion de sources de donnes accdes via un
System.Data.Odbc
driver Odbc
Propose un accs des sources de donnes Oracle (v8.1.7 ou
System.Data.OracleClient
suprieure)
Propose des classes permettant d'accder la fonctionnalit
System.Data.XML
XML sous SQL Server 2000 ou suprieur
Propose des classes pour des types de donnes spcifiques
System.Data.SQLTypes
Microsoft SQL Server
Dans la suite de notre article, nous utiliserons le fournisseur de donnes SqlClient et
accderons une base SQLServer 2000 fournie en exemple nomme "Northwind".
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
3 - 14
ADO .Net comprend quelques objets similaires aux ADO (comme les objets Connection et
Command) dont la syntaxe a volu. L'objet Recordset n'existe plus, il a t remplac par
les objets DataReader et DataSet.
Regardons de plus prs chacun de ces objets.
Objet
Connection
Command
Description
Ouvre une connexion vers une source de donnes spcifique
Excute une commande sur une source de donnes
Lit un flux de donnes partir d'une source de donnes en mode connect.
DataReader
Le mode d'accs est en lecture seule avec un curseur en avant seulement.
Reprsente un ensemble de donnes en mode dconnect. Il peut tre
DataSet
constitu de plusieurs tables ainsi que des relations et contraintes existant
entre elles.
Remplit un DataSet et rpercute les mises jour dans la source de
DataAdapter
donnes.
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
4 - 14
5.L'objet Connection
La connectivit SQLServer 2000 est assure par l'objet SqlConnection de l'espace de
noms System.Data.SqlClient. Le framework .Net propose ainsi des objets de connexion
diffrents en fonction du type de fournisseur de donnes choisi. Par exemple vous devrez
utiliser l'objet OleDbConnection si votre fournisseur est un fournisseur OleDb.La
connectivit SQLServer 2000 est assure par l'objet SqlConnection de l'espace de noms
System.Data.SqlClient. Le framework .Net propose ainsi des objets de connexion
diffrents en fonction du type de fournisseur de donnes choisi. Par exemple vous devrez
utiliser l'objet OleDbConnection si votre fournisseur est un fournisseur OleDb.
L'ouverture d'une connexion est ralise par la mthode Open et la fermeture par la
mthode Close.
' Exemple de gestion d'une connexion
Imports System
Imports System.Data.SqlClient
Imports System.IO
namespace ExempleAdoNetVBnet
public class SQLConnexion
public static void Main()
Dim strConnexion As String = "Data Source=localhost; Integrated
Security=SSPI;" & "Initial Catalog=Northwind"
try
Dim oConnection As SqlConnection = New SqlConnection(strConnexion)
oConnection.Open()
Console.WriteLine("Etat de la connexion : " & oConnection.State)
oConnection.Close()
catch e as Exception
Console.WriteLine("L'erreur suivante a t rencontre :" & e.Message)
End Try
End Sub
End Class
End Namespace
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
5 - 14
6.L'objet Command
Une fois la connexion vers une base de donnes effectue, vous pouvez excuter une
requte et rcuprer son rsultat en utilisant l'objet Command. Contrairement au
fonctionnement des ADO o il tait possible d'excuter une requte sans utiliser l'objet
Command, vous devez dsormais systmatiquement le faire.
La cration d'un objet Command ncessite l'instanciation d'un objet SqlCommand. Cet
objet expose diffrentes mthodes Execute utiliser selon le rsultat attendu :
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
6 - 14
7.L'objet DataReader
L'objet DataReader permet de rcuprer d'une source de donnes un flux en lecture seule
en avant seulement (read only, forward only). Il rsulte de l'excution de la mthode
ExecuteReader sur un objet Command.
L'objet DataReader ne stocke en mmoire qu'une seule ligne la fois, permettant ainsi
d'augmenter les performances d'une application et d'en rduire la charge.
Il est recommand d'utiliser cet objet si :
Vous n'avez pas besoin de raliser un cache des donnes
Vous traitez un jeu d'enregistrements trop important pour tre stock en mmoire
Vous souhaitez accder des donnes rapidement en lecture seule en avant
seulement
Comme l'objet DataReader a t conu pour accder aux donnes selon un mode
connect, il ne peut tre transmis entre diffrents tiers applicatifs ce que ralisait un
Recordset dconnect.
Par dfaut, un DataReader charge une ligne entire en mmoire chaque appel de la
mthode Read. Il est possible d'accder aux valeurs de colonnes soit par leurs noms soit
par leurs rfrences ordinales. Une solution plus performante est propose permettant
d'accder aux valeurs dans leurs types de donnes natifs (GetInt32, GetDouble,
GetString .). Par exemple si la premire colonne de la ligne indice par 0 est de type int,
alors il est possible de la rcuprer l'aide de la mthode GetInt32 de l'objet
DataReader.
Dim iColonne As Integer
iColonne = oDataReader.GetInt32(0)
La mthode Close ferme un objet DataReader. Prcisons que si l'objet Command utilis
contient des paramtres en sortie ou des valeurs de retours, ils ne pourront tre
rcuprs qu'a l'issue de la fermeture du DataReader.
Pour augmenter les performances, il est parfois ncessaire de soumettre plusieurs
requtes la fois. L'objet DataReader rpond ce besoin avec la mthode NextResult
permettant de passer d'un jeu d'enregistrement un autre. Pour les habitus des ADO,
cette mthode est quivalente au NextRecordset.
Aprs vous avoir prsent les principales mthodes de l'objet DataReader, regardons plus
prcisment leurs mise en ouvre l'aide d'un exemple d'extraction de donnes.
' Exemple d'extraction de donnes avec l'objet DataReader
Imports System
Imports System.Data.SqlClient
Imports System.IO
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
7 - 14
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
8 - 14
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
9 - 14
qu'il est ncessaire d'affecter la proprit Value de l'objet Parameter une valeur
pour les paramtres qui le ncessitent.
qu'il faut dcrire explicitement le type de paramtres via la proprit
ParameterDirection de l'objet Parameter (sauf pour les paramtres en entre).
Celle-ci peut prendre l'une des valeurs suivantes : Input, InputOutput, Output ou
ReturnValue.
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
10 - 14
9.Conclusion
Nous avons abord dans cet article quelques uns des objets disponibles dans ADO .Net.
et plus particulirement le mode connect propos par l'objet DataReader. Cet objet offre
une solution performante pour accder rapidement des donnes et pour traiter des
donnes dont la taille est trop importante pour tre stocke en mmoire.
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
11 - 14
OFPPT @
Document
Millsime
C-A-001.doc
juillet 12
Page
12 - 14