Vous êtes sur la page 1sur 34

03/03/2003

.Net et laccs aux donnes ADO.Net


Michel RIVEILL riveill@unice.fr - http://www.essi.fr/~riveill Laboratoire I3S Ecole dIngnieur en Sciences Informatiques (ESSI)

Objectifs et plan
n Objectifs n Rappel sur les bases de donnes relationnelles n Prsentation des classes de ADO.NET n Utilisation de ADO.NET dans une application n Plan n Base de donnes n Base de donnes relationnelles n Survol dADO.NET n Prsentation des classes dADO.NET
03/03/2003 2

03/03/2003

Base de donnes
n Toutes applications ncessitent des outils

pour conserver et retrouver des donnes structures


n n n

E-Commerce: sauvegarder un ordre, remplir un ordre Assistant personnel : donnes personnelles (contact, agenda, )

n Les services attendus varient en fonction des

applications
n n
03/03/2003

Transaction/OLTP Entrept de donnes/OLAP


3

Base de donnes
Besoins
n Conservation, lecture et modification des donnes n Copier, transformer des donnes n Sauvegarder et restaurer des donnes n Exprimer, vrifier des rgles dintgrit n Facteur dchelle et disponibilit n Evolution du nombre dutilisateurs n Volume important des donnes n Dbit important et temps de rponse court n tre sr n Facilit le dveloppement des applications

03/03/2003

03/03/2003

Base de donnes
Evolution des technologies
n Fichier n Bases de donnes hirarchiques n Accs distance n Bases de donnes relationelles (RDBMS) n Bases de donnes orients objets n XML

03/03/2003

Plan
n Base de donnes n Base de donnes relationnelles n Survol dADO.NET n Prsentation des classes dADO.NET

03/03/2003

03/03/2003

Base de donnes relationnelles


Tables
n Table (relation, entity) AuthID FirstName LastName Joe Smith n Une collection de donnes 1 avec un type spcifique 2 Diane Jones n Organise en lignes et colonnes n Colonne (attribut, champ) n Dcrit une partie dun entit (e.g. FirstName) n Donne type (e.g. integer, character, binary) n Peut tre nulle n ligne (tuple, enregistrement) n Instance dune donne dans une table n Chaque ligne est unique
03/03/2003 7

Base de donnes relationnelles


Relations
n Les tables peuvent tre lies par des cls primaires

ou externes (e.g., a book has an author)


n

Cls primaires
n n n

Guarantissent lunicit dune ligne Peut tre compose dune ou plusieurs colonnes Permet de garantir lintgrit des entits Permettent dtablir des relations logiques entre des tables Une ou plusieurs colonnes dune table correspond une cl primaire (ou externe) dune autre table Permettent de garantir lintgrit de la base
8

Cls externes
n

03/03/2003

03/03/2003

Base de donnes relationnelles


Relations
n Schema diagram depicts tables, columns,

primary keys, foreign keys


Books BookID AuthID Title Type Authors AuthID FirstName LastName

Schema Diagram
03/03/2003 9

Base de donnes relationnelles


Relations
Books Table PrimaryKey
BookID AuthID 1 2 2 1 Title My Life as a DBA Type Autobiography

Database Handbook Reference

PK/FK Relationship Foreign Key


AuthID FirstName 1 2 Joe Diane LastName Smith Jones

Authors Table
03/03/2003 10

03/03/2003

Base de donnes relationnelles


Type de relations
n One-to-One (1:1) Books LoC Entries n Uneligne dans la table X correspond une ligne dans la table Y n Un livre a au plus une entre dans la bibliothque 1 M n One-to-Many (1:M) Publishers Books n Une ligne dans la table X correspond 0+ lignes dans la table Y n Un diteur publie un ou plusieurs livres M N n Many-to-Many (M:N) Authors Books n 1+ lignes dans la table X correspond 1+ lignes dans la table Y n Un auteur crit un ou plusieurs livres ; un livre est crit par un ou plusieurs auteurs 03/03/2003 11
1 1

Base de donnes relationnelles


Relations M:N
n Les plus complexes n Peuvent ncessit la construction de trs grandes

bases (contenant des donnes rpliques) n Difficile dassurer lintgrit de la base n Le remde : crer une troisime table
n n

La troisime table contient les cls primaires des deux tables dorigine (construction dune cl composite) Les donnes sont rpts dans cette troisime table, mais pas dans les deux tables originales

Authors
03/03/2003

BookAuth

Books
12

03/03/2003

Base de donnes relationnelles


Relations M:N

Data is duplicated here

03/03/2003

13

Base de donnes relationnelles


Normalisation/Dnormalisation
n Normalisation

Processus qui permet de casser une grande table en plusieurs petites n But : minimiser les donnes redondantes, augmenter la correction n Amliore les performances lors des mises jours n Souhaitable pour des applications transactionnelles n Dnormalisation n Processus qui combine de petite table pour en construire une grande
n n n n n
03/03/2003

But : amliorer les performances Introduit des donnes redondantes Amliore les performances lors des lectures Souhaitable pour les entrepts de donnes
14

03/03/2003

Base de donnes relationnelles


Jointures
n Une jointure est la combinaison de donnes stockes dans

plusieurs tables
n Repose gnralement sur les relations cls publiques/cls

externes Product table Product Widget Thingy Widget Foobar Cost $10 $5 $8 $25 Vendor Acme Acme Blecco Blecco

Vendor table Vendor Acme Blecco State MA WA Contact Linda A. Adam P.

Product Cost Widget Thingy jointure


03/03/2003

Vendor State Acme Acme Blecco Blecco MA MA WA WA

Contact Linda A. Linda A. Adam P. Adam P. 15

$10 $5 $8 $25

Widget Foobar

Base de donnes relationnelles


Structured Query Language (SQL)
n Langage standardis pour accder une base de

donnes relationnelles (ANSI); SQL-92 n Ouvert, mais pas rellement


n n

Les fonctions usuelles sont les mmes dans les diffrents produits La plupart des vendeurs ont des extensions propritaires

n Sous-ensemble de SQL n Data Definition Language (DDL) n Data Manipulation Language (DML) n Data Control Language (DCL)
03/03/2003 16

03/03/2003

Base de donnes relationnelles


DDL
n Utilis pour crer et modifier les objets dune base de donnes

CREATE DATABASE Bookstore CREATE TABLE tBooks ( BookID INT IDENTITY(1,1) PRIMARY KEY, Title VARCHAR(30) NOT NULL, PubDate DATE NOT NULL, [Description] VARCHAR(50), Category INT NOT NULL )
03/03/2003 17

Base de donnes relationnelles


DML
n Selection de donnes
SELECT * FROM tAuthors SELECT AuthID, FirstName, LastName FROM tAuthors SELECT AuthID, FirstName, LastName, Phone FROM tAuthors WHERE City = Boston SELECT FirstName, LastName, Phone FROM tAuthors WHERE AuthID = 249
03/03/2003 18

03/03/2003

Base de donnes relationnelles


DML
n Construction dune jointure
SELECT AuthID, FirstName, LastName, Phone, BookID, Title, PubDate, Description FROM tAuthors, tBooks WHERE tAuthors.AuthID = tBooks.AuthID SELECT AuthID, FirstName, LastName, Phone, BookID, Title, PubDate, Description FROM tAuthors INNER JOIN tBooks ON tAuthors.AuthID = tBooks.AuthID

03/03/2003

19

Base de donnes relationnelles


DML
n Insrer, modifier et supprimer des donnes
INSERT INTO tBooks (Title, PubDate, [Description], Category) VALUES (Database Design, GETDATE(), How to design a database, 3) UPDATE tAuthors SET Phone = 617-555-1234 WHERE AuthID = 5 DELETE FROM tAuthors WHERE AuthID = 5

03/03/2003

20

10

03/03/2003

Base de donnes relationnelles


DCL
n Protger les accs la base
GRANT INSERT, UPDATE, DELETE ON tAuthors TO Mary, John REVOKE CREATE TABLE FROM Joe DENY ALL ON tAuthors, tBooks TO Sally

03/03/2003

21

Base de donnes relationnelles


Vues
n Une vue est une table virtuelle n Abstraire la structure dune table n Abstraire des requtes (gnralement complexes) n Abstraire les rgles de protection dune table n dans SQL Server 2000, une vue peut tre
n n

Indexe Modifier et insre dans la base

CREATE VIEW vwCustomerOrders AS SELECT o.OrderId, c.CompanyName FROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerID ORDER BY o.OrderId
03/03/2003 22

11

03/03/2003

Base de donnes relationnelles


Utilisation des vues

SELECT * FROM vwCustomerOrders WHERE CompanyName = 'My Favorite Customer' OrderId 101 137 CompanyName My Favorite Customer My Favorite Customer

03/03/2003

23

Base de donnes relationnelles


Procdures stockes
n

n n n n

Un ensemble dinstructions SQL qui sexcute cot de la base de donnes n Ne fait pas parti du standard SQL Offre une meilleure performance Permet de contrler laccs aux donnes Peut accepter des paramtres Peut retourner des donnes n Paramtres de sorties n Valeur de retour n Ensemble de retour

CREATE PROCEDURE CustOrderHist @CustomerID nchar(5) AS SELECT ProductName, Total=SUM(Quantity) FROM Products P, [Order Details] OD, Orders O, Customers C WHERE C.CustomerID = @CustomerID AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID GROUP BY ProductName

exec CustOrderHist 'alfki'


ProductName Aniseed Syrup Chartreuse verte Total 6 21
...

03/03/2003

...

24

12

03/03/2003

Base de donnes relationnelles


Procdures stockes
n Utiliser linstruction RETURN pour ltat n Valeur par dfaut de SQL Server : 0 n Uniquement des valeurs numriques
RETURN 1

n Utiliser les paramtres OUTPUT pour les

rsultats
CREATE PROCEDURE MyProcedure @ReturnValue INT OUTPUT ... SELECT @ReturnValue = ColumnName FROM Table

03/03/2003

25

Base de donnes relationnelles


Triggers
n Comme les procdures stockes, les triggers sont n n

n n n

du code qui sexcute hors de la base de donnes Ne peuvent pas tre appeles directement par les utilisateurs Excute des moments spcifiques de la vie dune donne particulire (INSERT, UPDATE or DELETE) Permet de vrifier des rgles dintgrits FOR AFTER : trigger excut aprs les actions trigues FOR INSTEAD OF : trigger excut la place des actions trigues
26

03/03/2003

13

03/03/2003

Base de donnes relationnelles


Transactions
n Transaction : une squence SQL qui constitue une

unit logique n Respect des proprits ACID


n n n n

Atomicit : toute la squence est excute avec succs, ou en cas derreur on revient ltat initial Consistance : laisse les donnes dans un tat consistant (respect des rgles dintgrits) Isolation : ne peut pas voir les modifications effectues par des transactions concurrentes Durabilit : mme en cas de panne, les effets de la transaction ne peuvent pas tre effacs un fois quelle a valid
27

03/03/2003

Base de donnes relationnelles


Concurrence
n Niveau disolation n Lecture avant commit n Lecture aprs commit n Lecture multiple n Srialisation n Choix : concurrence vs. intgrit des donnes n Verrouillage n Permet de garantir lintgrit des transactions / la consistance de la base de donnes n Permet de se prmunir des donnes fantme (i.e. on lit une valeur qui na jamais exist) n Peut crer des inter blocages
03/03/2003 28

14

03/03/2003

Plan
n Base de donnes n Base de donnes relationnelles n Survol dADO.NET n Prsentation des classes dADO.NET

03/03/2003

29

Survol dADO.NET
Rappel
n ODBC (Open Database Connectivity) n Interoprabilit avec de nombreuses bases de donnes (DBMS) n API largement accepte n utilise SQL comme langage daccs aux donnes n DAO (Data Access Objects) n Interface de programmation pour les bases de donnes JET/ISAM n Utilise automation (ActiveX, OLE automation) n RDO (Remote Data Objects) n Fortement coupl avec ODBC n Adapt au modle client-serveur (vs. DAO) n OLE DB n Accs aux donnes relationnelles ou non n Construit pour COM n Pas restreint au langage SQL n Peut utiliser des drivers ODBC n Interface de bas niveau (C++) n ADO (ActiveX Data Objects) n Interface oriente objet, Ensemble de composants daccs n Dfini un modle de programmation pour OLE DB accessible pour tous les 03/03/2003langages 30

15

03/03/2003

Survol dADO.NET
Chane daccs ADO
Votre application ADO OLE DB
ODBC
ODBC Driver

OLE DB Provider Text File Mainframe


Simple Provider

OLE DB Provider

Database
ODBC Provider
03/03/2003

Database
Native Provider
31

Survol dADO.NET
ADO
n ADO a t dfini comme un modle fortement

coupl (mode connect)


n

Appropri pour les architectures client/serveur

n Dfini pour le modle relationnel n Par pour le modle hirarchique (XML) n La conception objet dADO laisse dsirer n Plusieurs manire de faire la mme chose n Une mme objet a plusieurs utilisations n Pas dfini pour les applications rparties (n-

tier architecture)
03/03/2003 32

16

03/03/2003

Survol dADO.NET
ADO.NET
n ADO .NET est une collection de classes,

interfaces, structures et de types numrs pour accder des donnes relationnelles dans le framework .NET
n

La collection est organises dans diffrentes bibliothques


n

System.Data, System.Data.OleDb, System.Data.SqlClient, etc.

n ADO .NET est une volution dADO. n Ne partage pas le mme modle objet n Mais partage plusieurs paradigmes ou 03/03/2003 fonctionnalits

33

Survol dADO.NET
Objectifs dADO.NET
n Excellente conception n Gestion robuste du modle dconnect n Supporter aussi bien le modle hirarchique

que le modle relationnel


n

support des donnes XML

n Permettre laccs aux donnes laide

dHTTP n Maintenir la familiarit avec le modle de programmation dADO n Rendre ADO disponible via .NET
n
03/03/2003

Interoperabilit avec COM


34

17

03/03/2003

Survol dADO.NET
Providers supports
n Fusionner ADO et OLEDB en un seul niveau n Chaque provider contient un ensemble de classe qui

implmentent une interface commune n Implmentations initiales


n n

ADO Managed Provider : permet laccs ay base de donnes de type OLE SQL Server Managed Provider : fournit des performance optimale pour lutilisation dun serveur SQL Exchange Managed Provider : permet la recherche et la modification de donne dans Microsoft Exchange

03/03/2003

35

Survol dADO.NET
Providers supports
Votre application ADO.NET Managed Provider

OLE DB Provider SQL Server Database Database


ADO Managed Provider
36

SQL Managed Provider


03/03/2003

18

03/03/2003

Survol dADO.NET
Accs aux donnes
n Connect : Forward-only, read-only n Les applications requtent les donnes, les rapatrient et les utilisent n Firehose cursor n DataReader n Dconnect n Les applications requtent les donnes, les sauvegardent pour pouvoir les traiter n Minimise le temps de connexion avec la base n DataSet
03/03/2003 37

Survol dADO.NET
Liaison aux donnes (data binding)
n Composant cl du framework Web Forms n Flexible et facile utiliser n Permet de lier nimporte quel type de donnes stock dans une base n Permet de contrler les transferts de donnes entre la base et lapplication n Contrle simple pour laccs une valeur simple n Contrle complexe pour laccs une donne structure
<asp:Label runat=server Text='<%# CustList(0).FirstName %>'/>

03/03/2003

38

19

03/03/2003

Plan
n Base de donnes n Base de donnes relationnelles n Survol dADO.NET n Prsentation des classes dADO.NET

03/03/2003

39

ADO.NET
Interface IDbConnection
n Crer une session unique avec un source de

donnes n Implment par SqlDbConnection and OleDbConnection n Fonctionnalits


n n

Ouvrir, fermer les connections Dmarrer les transactions n IDbTransaction fournit les mthodes Commit et Rollback

n Utilis avec les objets IDbCommand et

IDataAdapter n Dautres proprits, mthodes et collections peuvent tre offerts selon le provider
03/03/2003 40

20

03/03/2003

ADO.NET
Interface IDbCommand
n Reprsente une instruction qui peut tre envoye une source de

n n

n n

donnes n Peut tre du SQL mais pas ncessairement Implmenter par OleDbCommand et SqlCommand Fonctionnalits n Dfini une instruction excuter n Excute linstruction n Passe et rcupre les paramtres n Cre et prpare une version compile de la commande ExecuteReader retourne une ligne, ExecuteNonQuery ne retourne rien, ExecuteScalar retourne une valeur simple Dautres proprits, mthodes et collections peuvent tre offerts selon le provider

03/03/2003

41

ADO.NET
Interface IDataReader
n Accs en mode forward-only, read-only un

flux (stream) de donnes n Implment par SqlDataReader et OleDbDataReader n Cr par la mthode ExecuteReader de IDbCommand n Les oprations sur les objets associs la connexion (IDbConnection) ne sont pas autoris jusqu la fermeture de la lecture
03/03/2003 42

21

03/03/2003

ADO.NET
Namespace System.Data.OleDb
n utiliser avec des providers OLEDB

(namespace managed)
n n n n

SQLOLEDB (SQL Server) utilise System.Data.SQL MSDAORA (Oracle) JOLT (Jet) OLEDB for ODBC providers

n Classes OleDbConnection,

OleDbCommand et OleDbDataReader n Classes pour la gestion des erreurs n Classes pour la gestion des connexions
03/03/2003

43

ADO.NET
Un exemple : DataReader
string sConnString = Provider=SQLOLEDB.1; + User ID=sa;Initial Catalog=Northwind; + Data Source=MYSERVER; OleDbConnection conn = new OleDbConnection(sConnString); conn.Open(); string sQueryString = SELECT CompanyName FROM Customers; OleDbCommand myCommand = new OleDbCommand(sQueryString, conn); OleDbDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read()) { Console.WriteLine(myReader.GetString(0)); } myReader.Close(); conn.Close();

03/03/2003

44

22

03/03/2003

ADO.NET
Dmonstration : DataReader, Insert

03/03/2003

45

ADO.NET
Namespace System.Data
n Contient les classes au coeur de larchitecture

ADO.NET n La classe DataSet, qui gre le mode dconnect est centrale n Supporte tous les types dapplications
n

Internet
n n

ASP.NET XML

Windows

n Contient les classes dfinies ou surcharges par les

diffrents providers n IDbConnection, IDbCommand, IDbDataReader


03/03/2003 46

23

03/03/2003

ADO.NET
DataSet
n n n n n n n n

Une collection de tables Na pas la connaissance de la source de donnes Capture toutes les relations entre les tables Modle de programmation complet (objets pour les tables, les colonnes, les relations, etc.) Mmorise ltat original et ltat courant des donnes Peu modifier dynamiquement les donnes et les mta-donnes Permet de srialiser les schmas en XML Dfini dans le namespace System.Data

03/03/2003

47

ADO.NET
DataSet

DataSet DataTable DataColumn DataRow DataRelation


03/03/2003 48

24

03/03/2003

ADO.NET
Namespace System.Data.SqlClient
n Dfini de manire native par le serveur SQL

(managed code) n Construit laide de TDS (Tabular Data Stream) pour de bonne performance dans le serveur SQL n Dfini les classes SqlConnection, SqlCommand and SqlDataReader n Dfini aussi des classes pour
n n

Gestion des erreurs La gestion des connections par pool (fonctionnement par dfaut)

n System.Data.SqlTypes fournit les classes pour la

gestion des types du serveur SQL


03/03/2003 49

ADO.NET
Interface IDataAdapter
n Publie ou envoie les modification un

DataSet n Implment par OleDbDataAdapter et SqlDataAdapter n Fonctionnement sans connexion


n

Permet un fonctionnement en mode asynchrone

n Contient quatre objets commandes par dfaut n Select, Insert, Update, et Delete
03/03/2003 50

25

03/03/2003

ADO.NET Classes
DataSet Example

string sConnString = Persist Security Info=False; + User ID=sa;Initial Catalog=Northwind; + Data Source=MYSERVER; SqlConnection conn = new SqlConnection(sConnString); conn.Open(); string sQueryString = SELECT CompanyName FROM Customers; SqlDataAdapter myDSAdapter = new SqlDataAdapter(); DataSet myDataSet = new DataSet(); myDSAdapter.SelectCommand = new SqlCommand(sQueryString, conn); myDSAdapter.Fill(myDataSet); conn.Close();

03/03/2003

51

ADO.NET Classes
Dmonstration DataSet

03/03/2003

52

26

03/03/2003

ADO.NET Classes
Dmonstration procdure stocke

03/03/2003

53

ADO.NET Classes
DataTable
n Objet mmoire reprsentant une table n Colonnes n lignes n Le schma est dfinit dans la collection

Columns n Lintgrit des donnes est assure par les objets Constraint n vnements publiques
n n
03/03/2003

Modification / suppression de lignes Modification des colonnes


54

27

03/03/2003

ADO.NET Classes
DataColumn
n lment fondamental de lobjet DataTable (contenu n n n n

dans la collection Columns) Dfinis quel type de donnes peuvent tre stockes dans la table (via la proprit DataType) Dautres importantes proprits peuvent tre inclues AllowNull, Unique, et ReadOnly Peut aussi contenir Constraints (collection de DataTable) Peut aussi contenir Relations (collection de DataSet)

03/03/2003

55

ADO.NET Classes
DataRow
n Reprsente une donne dans DataTable

(contenu dans la collection Rows) n Conforme au schma dfini par DataColumns n Proprits pour dterminer ltat de la ligne (e.g., new, changed, deleted, etc.) n Tous ajouts/modifications doivent valides (committed) par la mthode AcceptChanges de DataTable

03/03/2003

56

28

03/03/2003

ADO.NET Classes
DataRelation
n Met en relation deux DataTables via

DataColumns n Les valeurs des DataType des deux DataColumns doivent tre identiques n Les modifications peuvent tre propages au fils de DataTables n Les modifications qui invalident les relations sont interdites

03/03/2003

57

ADO.NET Classes
Crer un DataSet
n Crer un DataSet n Dfinir les tables

DataSet dataset = new DataSet(); dataset.DataSetName = BookAuthors; DataTable authors = new DataTable(Author); DataTable books = new DataTable(Book);
03/03/2003 58

29

03/03/2003

ADO.NET Classes
Crer un DataSet
n Definir les colonnes n Definir la ou les cls
DataColumn id = authors.Columns.Add("ID", typeof(Int32)); id.AutoIncrement = true; authors.PrimaryKey = new DataColumn[] {id}; DataColumn name = new authors.Columns.Add("Name",typeof(String)); DataColumn isbn = books.Columns.Add("ISBN", typeof(String)); books.PrimaryKey = new DataColumn[] {isbn}; DataColumn title = books.Columns.Add("Title", typeof(String)); DataColumn authid = books.Columns.Add(AuthID,typeof(Int32)); DataColumn[] foreignkey = new DataColumn[] {authid};

03/03/2003

59

ADO.NET Classes
Crer un DataSet
n Ajouter les tables au DataSet

dataset.Tables.Add (authors); dataset.Tables.Add (books);

03/03/2003

60

30

03/03/2003

ADO.NET Classes
Crer un DataSet
n Ajouter les donnes et sauvegarder le DataSet
DataRow shkspr = authors.NewRow(); shkspr["Name"] = "William Shakespeare"; authors.Rows.Add(shkspr); DataRelation bookauth = new DataRelation("BookAuthors", authors.PrimaryKey, foreignkey); dataset.Relations.Add (bookauth); DataRow row = books.NewRow(); row["AuthID"] = shkspr["ID"]; row["ISBN"] = "1000-XYZ"; row["Title"] = "MacBeth"; books.Rows.Add(row); dataset.AcceptChanges();
03/03/2003 61

ADO.NET Classes
Dmonstration crer un DataSet

03/03/2003

62

31

03/03/2003

ADO.NET Classes
DataSet typ
n DataSet typ n Driv de la classe de base DataSet n Utilise les schmas XML pour gnrer une nouvelle classe n Tables, colonnes, etc. sont compiles dans une nouvelle classe
ds.Customers.FirstName

wDataSet non typ


Pas de schma prdfini n Tables, colonnes, etc. sont exposes uniquement comme des collections
n

ds.Tables[Customers].Rows[0][FirstName]
03/03/2003 63

ADO.NET
Erreurs et exceptions
n Classe Error

Contient les informations lies une erreur ou un warning retourn par une source de donnes n Cr et gr par la classe Errors n Classe Errors n Contient toutes les erreurs gnres par un adaptateur n Cr par la classe Exception n Classe Exception n Cr chaque fois quune erreur non traite survient n Contient au moins une instance de la classe Error
n
03/03/2003

try { DataTable myTable = new DataTable(); myTable.Columns.Add(myCol); myTable.Columns.Add(myCol); //whoops! } Catch (DataException myException ) { Console.WriteLine ( "Message: + myException.Message + "\n + "Source: + myException.Source + "\n + Stack Trace: + myException.StackTrace + "\n"); }
64

32

03/03/2003

ADO.NET Classes
Dmonstration DataException

03/03/2003

65

Pour aller plus loin


n Introducing ADO+
n

http://msdn.microsoft.com/msdnmag/issues/1100/adoplus/a doplus.asp http://msdn.microsoft.com/library/default.asp?URL=/libr ary/dotnet/cpguide/cpconaccessingdata.htm http://msdn.microsoft.com/library/techart/adoplus.htm http://msdn.microsoft.com/library/techart/adonetdev.htm http://msdn.microsoft.com/library/welcome/dsmsdn/data02 222001.htm http://msdn.microsoft.com/library/welcome/dsmsdn/data03 222001.htm
66

n ADO.NET
n

n ADO+ Guides the Evolution of the Data Species


n n

n ADO.NET for the ADO Programmer n ADO Rocks and Rolls in .NET Applications
n

n Meditating on OLE DB and .NET


n

03/03/2003

33

03/03/2003

Pour aller plus loin


n Reading Data Reader Secrets
n

http://msdn.microsoft.com/library/welcome/dsmsdn/data0 4122001.htm http://msdn.microsoft.com/library/default.asp?URL=/lib rary/welcome/dsmsdn/data04122001.htm http://msdn.microsoft.com/library/default.asp?URL=/lib rary/psdk/dasdk/ados4piv.htm http://www.microsoft.com/data/ http://www.microsoft.com/sql/default.asp

n Database-like Data Containers


n

n ADO
n

n Universal Data Access


n

n SQL Server
n

03/03/2003

67

34