Anda di halaman 1dari 35

Module :

Accs aux donnes laide de


Microsoft ADO.NET

Vue densemble







Prsentation de lutilisation de
Microsoft ADO.NET
Connexion une base de donnes
Accs aux donnes avec des DataSet
Utilisation de plusieurs tables
Accs aux donnes avec des
DataReader

Leon : Prsentation de lutilisation de


Microsoft ADO.NET


Prsentation multimdia :
Utilisation dADO.NET pour
accder aux donnes
Utilisation des DataSet et des
DataReader
Application pratique : Utilisation
des DataSet ou des DataReader

Utilisation dADO.NET pour accder aux


donnes

Utilisation des DataSet et des


DataReader
DataSet

DataReader

Accs aux donnes en


lecture/criture

Accs en lecture seule

Comprend plusieurs tables provenant


de bases de donnes distinctes

Bas sur une instruction SQL dune


seule base de donnes

Dconnect

Connect

Li plusieurs contrles

Li un seul contrle

Analyse des donnes en avant et en


arrire

En avant seulement

Accs plus lent

Accs plus rapide

Prise en charge par les outils Visual


Studio .NET

Cod manuellement

Application pratique : Utilisation des


DataSet ou des DataReader


Les stagiaires effectueront la


tche suivante:
Slectionner le meilleur
accs aux donnes en
fonction de divers
scnarios
Dure approximative : 5
minutes

Leon : Connexion une base de donnes





Scurit SQL Server


Cration de la connexion
Dmonstration : Dfinition de la
scurit pour SQL Server

Scurit SQL Server


Serveur
ServeurWeb
Web
Paramtres
Paramtrespar
pardfaut
dfaut
ddASP.NET
ASP.NET

Authentification
Authentificationen
en
mode
modemixte
mixte

Nom
d utilisateur et
mot de passe

Ou...
Ou...
Client
Client

Authentification
Authentification

Envoie le nom
d utilisateur et le mot de
passe sous le forme de
texte en clair.
Serveur
ServeurSql
SqlServer
Server
Chaque
Chaquecompte
compteddutilisateur
utilisateur
est
ajout
au
groupe
est ajout au groupeddaccs
accs
de
SQL
Server
de SQL Server

Nenvoie pas le nom


dutilisateur ni le mot de passe.
Envoie uniquement la
confirmation que lutilisateur a
t authentifi.

windows
windowsuniquement
uniquement
Serveur
ServeurSQL
SQLServer
Server
Serveur
Serveurweb
web
Authentification
Authentificationwindows
windows

LLaccs
accsest
estoctroy
octroyau
aucompte
compte
ASPNET
uniquement
ASPNET uniquement

Cration de la connexion
Utilisation de SqlConnection
Dim
Dim strConn
strConn As
As String
String == "data
"data source=localhost;
source=localhost; "" && __
"initial
"initial catalog=northwind;
catalog=northwind; integrated
integrated security=true"
security=true"
Dim
conn
As
New
SqlConnection(strConn)
Dim conn As New SqlConnection(strConn)

Dfinition des paramtres de la chane


de connexion
Password
Connection timeout
Persist security
info
Data source
Provider
Initial catalog
User ID
Integrated security

Dmonstration : Dfinition de la
scurit pour SQL Server


Ouverture de SQL Server


Entreprise Manager
Dfinition du mode
dauthentification
Vrification avec la
scurit intgre
Vrification avec
scurit en mode
mixte

Leon : Accs aux donnes avec des


DataSet









Cration dun DataAdapter


Cration dun DataSet
Dmonstration : Utilisation dun DataSet par
programmation
Utilisation dun DataView
Application pratique : Organisation de code
pour crer un DataSet
Liaison dun DataSet un contrle de liste
Application pratique dirige : Affichage dun
DataSet
Gestion des erreurs

Cration dun DataAdapter




Stockage de la requte dans un


DataAdapter

Dim
Dim da
da As
As New
New SqlDataAdapter
SqlDataAdapter ("select
("select ** from
from Authors",
Authors", conn)
conn)

Le constructeur DataAdapter dfinit la


proprit SelectCommand
da.SelectCommand.CommandText
da.SelectCommand.CommandText
da.SelectCommand.Connection
da.SelectCommand.Connection

Dfinition des proprits InsertCommand,


UpdateCommand et DeleteCommand si
ncessaire

Cration dun DataSet




Cration et remplissage dun DataSet


avec des DataTable
La mthode Fill excute la proprit
SelectCommand
Dim
Dim ds
ds As
As New
New DataSet()
DataSet()
da.Fill(ds,
da.Fill(ds, "Authors")
"Authors")
ds.Tables("Authors").Rows.Count
ds.Tables("Authors").Rows.Count
Dim
Dim rr As
As DataRow
DataRow
Dim
str
As
Dim str As String
String
For
Each
r
in
For Each r in __
ds.Tables("Authors").Rows
ds.Tables("Authors").Rows
str
str &=
&= r(2)
r(2)
str
str &=
&= r("au_lname")
r("au_lname")
Next
Next

Dmonstration : Utilisation dun


DataSet par programmation






Cration dune connexion


Cration dun DataAdapter
cration dun DataSet
lecture de donnes dun
DataSet par programmation

Utilisation dun DataView




Un objet DataView peut tre personnalis


pour prsenter un sous-ensemble de
donnes dun DataTable

La proprit DefaultView retourne la


vue par dfaut Dataview de la table
Dim
Dim dv
dv As
As DataView
DataView == ds.Tables("Authors").DefaultView
ds.Tables("Authors").DefaultView

Dfinition dune autre vue dun DataSet


Dim
Dim dv
dv As
As New
New DataView
DataView (ds.Tables("Authors"))
(ds.Tables("Authors"))
dv.RowFilter
=
"state
=
dv.RowFilter = "state = 'CA'"
'CA'"

Application pratique : Organisation de


code pour crer un Dataset

Les stagiaires devront:


Rorganiser des lignes de
code pour crer un
DataSet

Dure approximative : 5
minutes

Liaison dun DataSet un contrle de


liste


Cration du contrle
<asp:DataGrid
<asp:DataGrid id="dg"
id="dg" runat="server"
runat="server" />
/>

Liaison un DataSet ou un DataView


dg.DataSource
dg.DataSource == ds
ds
dg.DataMember
=
"Authors"
dg.DataMember = "Authors"
dg.DataBind()
dg.DataBind()

Application pratique dirige : Affichage


dun DataSet







Cration dune connexion


Cration dun DataAdapter
Cration dun DataSet
Cration dun DataView
Liaison du DataSet et du
DataView des contrles
DataGrid

Gestion des erreurs




La connexion ne souvre
La chane de connexion nest pas
valide
Le serveur ou la base de donnes est
introuvable
La connexion a chou
DataAdapter ne peut pas crer un
DataSet
La syntaxe SQL nest pas valide
Le nom de table ou de champ nest
pas valide

Leon: Utilisation de plusieurs tables






Stockage de plusieurs tables


Cration de relations
Navigation par programmation entre
des tables laide des relations
Navigation par visuelle entre des
tables laide des relations
Application pratique dirige :
Affichage de donnes
issues de plusieurs tables

Stockage de plusieurs tables




Ajout de la premire table


daCustomers
daCustomers == New
New SqlDataAdapter
SqlDataAdapter __
("select
("select ** from
from Customers",
Customers", conn1)
conn1)
daCustomers.Fill(ds,
daCustomers.Fill(ds, "Customers")
"Customers")

Ajout de tables conscutives


daOrders
daOrders == New
New SqlDataAdapter
SqlDataAdapter __
("select
("select ** from
from Orders",
Orders", conn2)
conn2)
daOrders.Fill(ds,
daOrders.Fill(ds, "Orders")
"Orders")
Customers

conn1

conn2
DataSet

Orders

Cration de relations
Identification de la colonne parente
Dim
Dim parentCol
parentCol As
As DataColumn
DataColumn == __
ds.Tables("Customers").Columns("CustomerID")
ds.Tables("Customers").Columns("CustomerID")

Identification de la colonne enfant


Dim
Dim childCol
childCol As
As DataColumn
DataColumn == __
ds.Tables("Orders").Columns("CustomerID")
ds.Tables("Orders").Columns("CustomerID")

Cration de DataRelation
parentCol Table Customers

DataRelation

Dim
Dim dr
dr As
As New
New DataRelation
DataRelation __
("name",
("name", parentCol,
parentCol, __
childCol)
childCol)
ds.DataRelations.Add(dr)
ds.DataRelations.Add(dr)

childCol

DataSet

Table Orders

Navigation par programmation entre


des tables laide des relations
ds.Tables(index).Rows(index).GetChildRows("relation")
ds.Tables(index).Rows(index).GetChildRows("relation")
ds.Tables(index).Rows(index).GetParentRow("relation")
ds.Tables(index).Rows(index).GetParentRow("relation")

Orders

Customers
GetChildRows

DataSet

GetParentRow

Navigation par visuelle entre des tables


laide des relations

Dim
Dim tableView
tableView As
As DataView
DataView
Dim
Dim currentRowView
currentRowView As
As DataRowView
DataRowView
tableView
tableView == New
New DataView(ds.Tables("Customers"))
DataView(ds.Tables("Customers"))
currentRowView
=
currentRowView = tableView(dgCustomers.SelectedIndex)
tableView(dgCustomers.SelectedIndex)
dgChild.DataSource
dgChild.DataSource == currentRowView.CreateChildView("CustOrders")
currentRowView.CreateChildView("CustOrders")

Customers

DataRowView

CreateChildView

DataSet
DataView

Orders

Application pratique dirige : Affichage


de donne issues de plusieurs tables


Par programmation:
Cration d un DataSet
Cration d un DataRelation
Affichage des enregistrements
enfants
l aide de DataRelation
visuellement:
Appel de CreateChildView

Leon : Accs aux donnes avec des


DataReader
Prsentation dun DataReader
Cration dun DataReader
Lecture de donnes partir dun
DataReader
Liaison dun DataReader un contrle de
liste
Application pratique : Organisation de
code pour crer un DataReader
Dmonstration : Affichage de donnes
l aide des DataReader

Prsentation dun DataReader








En avant seulement en lecture seule


Accs rapide aux donnes
Connect une source de donnes
Gestion manuelle de la connexion
Gestion manuelle des donnes ou liaison
un contrle de liste
Moins de ressources serveur utilises

Cration dun DataReader


Pour utiliser un DataReader:
Crez et ouvrez la connexion la base
de donnes
Crez un objet Command
Crez l objet DataReader partir de
l objet Command
Appelez la mthode ExecuteReader
Utilisez lobjet DataReader
Fermez l objet DataReader
fermez l objet Connection
Utilisation de la gestion des erreurs

Lecture de donnes partir dun


DataReader
Appel de Read pour chaque enregistrement
Retourne Null lorsquil n y a plus
d enregistrement
Accs aux champs
Le paramtre est la position ordinale ou le
nom du champ
les fonctions Get offrent de meilleures
performances
Do
Do While
While myReader.Read()
myReader.Read()
str
&=
str &= myReader(1)
myReader(1)
str
str &=
&= myReader("field")
myReader("field")
str
str &=
&= myReader.GetDateTime(2)
myReader.GetDateTime(2)
Loop
Loop

Lecture de donnes partir dun


DataReader
Fermeture du DataReader
Fermeture de la connexion

Liaison dun DataReader un contrle


de liste


Cration du contrle

<asp:DataGrid
<asp:DataGrid id="dgAuthors"
id="dgAuthors" runat="server"
runat="server" />
/>


Liaison un DataReader
dgAuthors.DataSource
dgAuthors.DataSource == dr
dr
dgAuthors.DataBind()
dgAuthors.DataBind()

Application pratique : Organisation de


code pour crer un DataReader

Les stagiaires devront:


Rorganiser des lignes de
code pour crer un
DataReader
Dure approximative : 5 minutes

Dmonstration : Affichage de donnes


l aide des DataReader

Cration dun SqlConnection


Cration d un DataReader
Liaison du DataReader un
ListBox
Cration des lments du
ListBox partir des donnes
fournies par le DataReader

Contrle des acquis






Prsentation de lutilisation de Microsoft


ADO.NET
Connexion une base de donnes
Accs aux donnes avec des DataSet
Utilisation de plusieurs tables
Accs aux donnes avec des DataReader

Anda mungkin juga menyukai