Vous êtes sur la page 1sur 21

Ch apit re

10 DataSet et XML

DataSet ................................................... 380 XML ........................................................ 386 Check-list .................................................. 399

10

DataSet et XML

Ce chapitre prsente dautres mcanismes pour manipuler des donnes structures et hirarchiques. DataSet, par exemple, permet de rcuprer des donnes dune source de donnes et de les stocker en mmoire, prtes tre utilises sans avoir se reconnecter la base de donnes. XML est un chier qui stocke des donnes sous forme hirarchique, et celles-ci sont tlchargeables vers la page ASP.NET 2.0 laide des mthodes et proprits des contrles ASP.NET 2.0.

10.1 DataSet
DataSet consiste en une collection dobjets DataTable. Il permet, laide de la classe DataAdapter, de rcuprer des donnes dune source de donnes et de les stocker en mmoire. Dans les exemples du chapitre Les bases de donnes, vous avez travaill avec des donnes connectes au serveur, mais quand vous travaillez avec DataSet, il faut savoir que les donnes sont dconnectes du serveur. Lavantage du stockage de la base de donnes en mmoire permet lutilisateur de prendre son temps pour modier les donnes. Une fois les modications faites, il fait leur mise jour dans le serveur dun seul clic, dchargeant ainsi considrablement ce dernier. DataSet possde aussi des mthodes comme WriteXml et ReadXml pour lire et crire les donnes en tant que documents XML.

Exemple
Dans cet exemple et laide de Visual Web Developer, vous allez crer les objets DataSet et TableAdapter, puis une couche daccs aux donnes laide dObjectDataSource. Vous allez congurer ObjectDataSource avec DataSet pour afficher les donnes dans un contrle GridView. 1 Ouvrez Visual Web Developer et crez un nouveau site web, que vous nommez xmlProjet. 2 Slectionnez le rpertoire racine du projet xmlProjet, puis cliquez sur Nouveau chier dans le menu Fichier. La bote de dialogue Ajouter un nouvel lment souvre. 3 Dans la bote de dialogue Ajouter un nouvel lment, choisissez DataSet puis cliquez sur le bouton Ajouter. Visual Web Developer vous demande de crer le rpertoire App_Code sil nexiste pas ; dans ce cas, cliquez sur OK. 4 Visual Web Developer insre automatiquement TableAdapter et ouvre la bote de dialogue Assistant Conguration de TableAdapter pour ajouter ou choisir la connexion la base de donnes. Si vous cliquez sur le bouton Annuler, vous pouvez toujours glisser un autre TableAdapter de la Bote outils.
380 Le guide du codeur

DataSet

10

Suivez les instructions pour ajouter une connexion de donnes comme vous lavez dj fait dans les exemples prcdents. Cette fois, choisissez la base de donnes Northwind et pour le type de commande, cliquez sur le bouton radio Utiliser des instructions SQL puis cliquez sur le bouton Gnrateur de requtes.

m Figure 10-1 : La bote de dialogue Choisissez un type de commande pour TableAdapter

5 Dans la bote de dialogue Ajouter une table, slectionnez Customers, puis cliquez respectivement sur les boutons Ajouter et Fermer.

b Figure 10-2 : La bote de dialogue Ajouter une table

Le guide du codeur 381

10

DataSet et XML

6 Dans la bote de dialogue Gnrateur de requtes, cochez les cases CustomerID, ContactName, Address, City et Phone puis cliquez sur les boutons Excuter la requte et OK.

m Figure 10-3 : La bote de dialogue Gnrateur de requtes

7 Dans la bote de dialogue Entrez une instruction SQL, cliquez sur le bouton Suivant.

m Figure 10-4 : La bote de dialogue Entrez une instruction SQL

382 Le guide du codeur

DataSet

10

8 Dans la bote de dialogue Choisir les mthodes gnrer, cochez les trois cases, puis cliquez sur le bouton Suivant.

m Figure 10-5 : La bote de dialogue Choisir les mthodes gnrer

9 Dans la bote de dialogue Rsultats de lAssistant, cliquez sur le bouton Terminer.

m Figure 10-6 : Le chier Dataset1.xsd ouvert dans Visual Web Developer

10 Crez un chier Web Form et donnez-lui le nom dataset.aspx. Ouvrez-le et passez en mode Design.
Le guide du codeur 383

10

DataSet et XML

11 Glissez un contrle GridView dans le document. Dans son panneau Tche GridView, choisissez Nouvelle source de donnes dans la liste droulante. 12 Dans la bote de dialogue Choisir un type de source de donnes, choisissez Objet et laissez le nom ObjetDataSource1, puis cliquez sur OK. 13 Dans la bote de dialogue Choisir un objet mtier, choisissez Dataset1TableAdapters.CustomersTableadapter dans la liste droulante Choisissez votre objet mtier, puis cliquez sur le bouton Suivant.

m Figure 10-7 : La bote de dialogue Choisir un objet mtier

14 Dans la bote de dialogue Dnir les mthodes de donnes, laissez les slections par dfaut et cliquez sur le bouton Terminer.

m Figure 10-8 : La bote de dialogue Dnir les mthodes de donnes

15 Appuyez sur les touches [Ctrl]+[F5] pour tester la page.

384 Le guide du codeur

DataSet

10

m Figure 10-9 : Les donnes de DataSet affiches laide de GridView dans la fentre du navigateur

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Page sans titre</title> </head> <body> <form id="form1" runat="server"> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID" DataSourceID="ObjectDataSource1"> <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> <asp:BoundField DataField="ContactName" HeaderText="ContactName"
Le guide du codeur 385

10

DataSet et XML

SortExpression="ContactName" /> <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" /> <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" /> <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" /> <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" /> </Columns> </asp:GridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="DataSet1TableAdapters.CustomersTableAdapter" UpdateMethod="Update"> <DeleteParameters> <asp:Parameter Name="Original_CustomerID" Type="String" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="ContactName" Type="String" /> <asp:Parameter Name="City" Type="String" /> <asp:Parameter Name="Address" Type="String" /> <asp:Parameter Name="Phone" Type="String" /> <asp:Parameter Name="CustomerID" Type="String" /> <asp:Parameter Name="Original_CustomerID" Type="String" /> </UpdateParameters> </asp:ObjectDataSource> </form> </body> </html>
m Le code de chier dataset.aspx

10.2 XML
Dans les chapitres prcdents, vous avez utilis les sources de donnes tabulaires (bidirectionnelles) SqlDataSource et ObjectDataSource. Dans cette section, vous allez travailler avec la source de donnes hirarchiques XmlDataSource. La source de donnes AccessDataSource, qui ncessite le logiciel Microsoft Access, ne sera pas traite ici car nous travaillons dans ce livre avec SQL Server 2005 Express Edition comme un systme de gestions de base de donnes. Cette section commence par une introduction au langage XML qui prsente brivement le document XML et sa structure, puis les diffrentes
386 Le guide du codeur

XML

10

mthodes ou technologies qui affichent les donnes du document XML. Les autres rubriques couvrent les contrles ASP.NET 2.0 qui affichent les donnes du document XML sur le navigateur et les stockent dans le document XML. Ce livre, tant consacr Visual Web Developer et ASP.NET 2.0, ne dtaille pas XML. Pour plus dinformations sur ce langage, rfrez-vous aux nombreuses ressources disponibles dans le commerce (ouvrages, articles, etc.).

Prsentation gnrale du langage XML


XML (Extensible Markup Language) est un langage de balisage extensible fond par les groupes de travail du World Wide Web Consortium. XML a volu partir du langage mre SGML (Standard Generalized Markup Language) qui est aussi lorigine du HTML. En effet, XML et HTML sont tous deux des applications SGML. Le langage XML stocke, gre, organise et change les donnes mais surtout, naffiche pas les donnes comme le fait HTML. Lorsque le document XML est utilis avec un document HTML, HTML peut stocker des donnes dans le document XML de la mme faon que dans un systme de gestion de donnes comme SQL Server, par exemple. XML utilise un langage de requte appel XPath pour manipuler les bases de donnes. XPath se comporte avec XML comme le langage SQL avec SQL Server. Le point le plus important de XML est quil permet deux systmes informatiques non compatibles (comme Windows et Unix) de schanger les donnes, et ce, surtout en utilisant un simple document HTML.

La structure de document XML


Il est possible de diviser le document XML en deux blocs, le bloc prologue et le bloc des lments.

Le bloc prologue Les lments du bloc prologue sont facultatifs. Voici ce quil peut y avoir dans le prologue dun document XML : 1 Une dclaration de codage et le numro de version ;
<?xml version="1.0" encoding="UTF-8"?>

2 Des instructions de traitement qui se prsentent par une liaison un chier de feuille de style ;
<?xml-stylesheet type="text/xsl" href="fichier_css.xsl"?>

3 La dclaration DOCTYPE qui se prsente par une liaison un chier de dnition de type de document (DTD) ;
<!DOCTYPE catalog SYSTEM "fichier_dfinition.dtd">

Le guide du codeur 387

10

DataSet et XML

4 Un commentaire dans le document XML ;


<!-- ici vous pouvez mettre des commentaires -->

Le bloc des lments Le bloc des lments consiste en des balises dlments, chaque lment devant avoir un nom, et un ou plusieurs attributs avec leurs valeurs. Voici un exemple de balisage des lments :
<personne> <homme> <nom>Maxime</nom> </homme> <femme> <nom>Mona</nom> </femme> </personne>

Le document prcdent peut tre crit aussi avec des attributs comme suit :
<personne> <homme nom="Maxime"></homme> <femme nom="Mona"></femme> </personne>

Dans le balisage prcdent, la balise <personne> reprsente la racine du document XML, sachant que dans un document XML, il ne doit y avoir quune seule racine. Les autres lments sont des lments enfants. Voici lexemple dun document XML qui commence par le prologue, puis llment racine <personnes>, llment enfant <personne> qui possde son tour les lment enfants <homme>, <femme> et ses attributs nom.
<?xml version="1.0" encoding="UTF-8"?> <personnes> <personne> <homme nom="Maxime"></homme> <femme nom="Mona"></femme> </personne> </personnes>

Afficher les donnes du chier XML


Comme nous lavons mentionn au dbut du chapitre, le chier XML nest pas destin afficher les donnes car cest un langage de structure. Le document XML permet de manipuler ses lments et attributs pour afficher les donnes dans le navigateur, sous forme arborescente ou autre. Il est possible dutiliser
388 Le guide du codeur

XML

10

une ou plusieurs mthodes et technologies et il est important de les analyser pour en comprendre les mcanismes avant de voir comment ASP.NET 2.0 traite le document XML.

Afficher les donnes du chier XML laide du chier des feuilles de style Il est possible de formater les donnes du chier XML par les feuilles de style en cascade. Le code suivant du chier XML personne.xml contient un lien au chier css appel fichier_css.css.
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="fichier_css.css"?> <personnes> <personne> <homme> <nom>Maxime</nom> </homme> <femme> <nom>Mona</nom> </femme> </personne> </personnes>
m Le chier XML personne.xml

nom { display: block; color: brown; font-size: 12pt; }


m Le code du chier des feuilles de style chier_css.css

Si vous double-cliquez sur le chier personne.xml pour louvrir, les noms Maxime et Mona vont safficher sur lcran du navigateur.

Afficher les donnes du chier XML laide de JavaScript et des objets DOM Dans le document HTML suivant, lactiveX Microsoft.XMLDOM permet de tlcharger le document personne02.xml laide de la mthode load et de crer un arbre dobjets DOM manipulables par JavaScript.
<html> <head> <style> <!-.nom_s { display: block;

Le guide du codeur 389

10

DataSet et XML

color: brown; font-size: 12pt; } --> </style> </head> <body> <script language="javascript"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("personne02.xml") document.write(<Div class="nom_s">) document.write(xmlDoc.documentElement.selectNodes ("personne/homme").item(0).text) document.write(</Div><Div class="nom_s">) document.write(xmlDoc.documentElement.selectNodes ("personne/femme").item(0).text) document.write("</Div>") </script> </body> </html>
m Le code du chier HTML Javascript_dom.html

<?xml version="1.0" encoding="UTF-8"?> <personnes> <personne> <homme> <nom>Maxime</nom> </homme> <femme> <nom>Mona</nom> </femme> </personne> </personnes>
m Le code du chier personne02.xml

Afficher les donnes du chier XML laide de XSLT Le code du chier XML personne03.xml suivant contient un lien au chier XSLT fichier_xsl.xsl. Le chier XSLT formate le document XML laide de llment <xsl:template> qui utilise le langage XPath (XPath fonctionne comme SQL). Pour plus dinformations sur XSLT et XPath, consultez les documentations de Microsoft.
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="fichier_xsl.xsl"?> <personnes> <personne>

390 Le guide du codeur

XML

10

<homme> <nom>Maxime</nom> </homme> <femme> <nom>Mona</nom> </femme> </personne> </personnes>


m Le chier personne03.xml

<?xml version=1.0?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="homme"> <DIV STYLE="display: block; color: brown; font-size: 12pt;"> <xsl:value-of select="nom" /> </DIV> </xsl:template> <xsl:template match="femme"> <DIV STYLE="display: block; color: brown; font-size: 12pt;"> <xsl:value-of select="nom" /> </DIV> </xsl:template> </xsl:stylesheet>
m Le code du chier chier_xsl.xsl

Affichage des donnes du chier XML par ASP.NET 2.0


Dans cette rubrique, vous allez utiliser ASP.NET 2.0 pour manipuler les donnes dans le chier XML. ASP.NET 2.0 possde plusieurs contrles pour travailler avec le document XML. Si vous voulez seulement afficher les donnes du chier XML sans les manipuler, vous pouvez utiliser le contrle XML dans longlet Standard de la Bote outils. Ce contrle vous permet de spcier le nom du chier XML et le chier de style XSL le cas chant. Autrement, vous pouvez glisser le chier XML partir de lExplorateur de solutions directement vers le document, mais cette mthode naffiche les donnes que sous forme hirarchique dans un contrle TreeView. laide du contrle de source de donnes XmlDataSource, les donnes dans le document XML deviennent une source congurable pour les contrles lis aux donnes, comme le contrle GridView par exemple. Le membre GetXmlDocument du contrle XmlDataSource permet de charger les donnes XML en mmoire sous forme dobjets XmlDataDocument. Cela permet de modier le document XML par programme ou par la page ASP.NET 2.0. De mme, le
Le guide du codeur 391

10

DataSet et XML

langage de requte XPath permet de ltrer les donnes XML laide du contrle XmlDataSource. ASP.NET 2.0 possde aussi des classes disposition pour travailler avec le document XML comme XmlTextReader et XmlTextWriter qui offrent un accs rapide et non mis en cache pour la lecture et lcriture en tant que document XML. Les mthodes WriteXml et ReadXml de DataSet permettent galement de lire et crire les donnes en document XML.

Utiliser le contrle serveur web XML


Pour afficher les donnes du document XML en utilisant le contrle serveur web XML, respectez les instructions suivantes : 1 Ouvrez Visual Web Developer et le projet xmlProjet. 2 Slectionnez le rpertoire racine du projet xmlProjet puis cliquez sur Nouveau chier dans le menu Fichier. La bote de dialogue Ajouter un nouvel lment souvre. 3 Dans la bote de dialogue Ajouter un nouvel lment, choisissez Web Form puis saisissez xmlCtrl.aspx comme nom de chier, et cliquez ensuite sur le bouton Ajouter. 4 Glissez un contrle XML de la Bote outils vers le document, slectionnez-le puis ouvrez sa fentre Proprits en appuyant sur la touche [F4]. 5 Chargez le chier personne02.xml dans votre serveur. Dans la fentre Proprits, cliquez dans le champ de la proprit DocumentSource. Cliquez ensuite sur le bouton de slection et slectionnez le chier personne02.xml de lexemple prcdent. 6 Appuyez sur les touches [Ctrl]+[F5] pour tester la page. Vous devez avoir le texte MaximeMona non format sur lcran du navigateur. 7 Dans la fentre Proprits, cliquez dans le champ de la proprit TransformSource, cliquez sur le bouton de slection et slectionnez le chier XSLT de lexemple prcdent fichier_xsl.xsl. 8 Appuyez sur les touches [Ctrl]+[F5] pour tester la page nouveau. Vous devez avoir le texte Maxime et Mona format en deux lignes sur lcran du navigateur.
<%@ Page Language="VB" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>xmlCtrl.aspx</title> </head> <body> <form id="form1" runat="server">
392 Le guide du codeur

XML

10

<div> <asp:Xml ID="Xml1" runat="server" DocumentSource="~/App_Data/personne02.xml" TransformSource="~/App_Data/fichier_xsl.xsl"> </asp:Xml></div> </form> </body> </html>
m Le code de chier xmlCtrl.aspx

Les chiers XML et XSL Pour formater les donnes dun chier XML laide dun chier XSLT, vous devez indiquer le nom du chier XSL dans le code du chier XML par le code suivant :

<?xmlstylesheet type="text/xsl" href="nom_de_fichier.xsl"?>


Avec le contrle XML, vous navez pas besoin dajouter cette ligne car le contrle XML prend en charge la liaison entre les deux chiers.

Utiliser la source de donnes XmlDataSource


XmlDataSource permet des contrles serveur web dafficher les donnes dun

chier XML dans le navigateur.

Exemple Dans cet exemple, vous allez utiliser la source de donnes XmlDataSource et le contrle de donnes GridView pour afficher les donnes du chier livres.xml sous forme tabulaire. Normalement, XmlDataSource rend le premier niveau de la hirarchie de donnes XML.
1 Ouvrez Visual Web Developer et le projet xmlProjet. 2 Dans lExplorateur de solutions, slectionnez le rpertoire App_Data, cliquez avec le bouton droit de la souris puis cliquez sur Ajouter un nouvel lment. La bote de dialogue Ajouter un nouvel lment souvre. 3 Dans la bote de dialogue Ajouter un nouvel lment, slectionnez Fichier XML et donnez-lui le nom livres.xml puis cliquez sur le bouton Ajouter. 4 Saisissez le code suivant dans le document du chier livres.xml.
<?xml version="1.0" encoding="utf-8" ?> <Livres> <Livre Titre="ASP.NET 2.0" ISBN="2100497782"> <Auteur IDn="Sweet"></Auteur> <Editeur nom="DDM"></Editeur>
Le guide du codeur 393

10

DataSet et XML

<Texte Langue="Franais" ></Texte> </Livre> <Livre Titre="VB.NET" ISBN="2100497782"> <Auteur IDn="Douran"></Auteur> <Editeur nom="Future"></Editeur> <Texte Langue="Franais" ></Texte> </Livre> <Livre Titre="C#" ISBN="2100497782"> <Auteur IDn="Nissan"></Auteur> <Editeur nom="Livrat"></Editeur> <Texte Langue="Anglais" ></Texte> </Livre> </Livres>
m Le code du chier livres.xml

5 Dans lExplorateur de solutions, slectionnez le rpertoire racine, cliquez avec le bouton droit de la souris puis cliquez sur Ajouter un nouvel lment. 6 Dans la bote de dialogue Ajouter un nouvel lment, choisissez Web Form puis saisissez xmlGridView.aspx comme nom du chier. Cliquez ensuite sur le bouton Ajouter. 7 Avec le document xmlGridView.aspx ouvert, passez en mode Design. 8 Glissez un contrle GridView vers le document, ouvrez son panneau Tche GridView puis choisissez Nouvelle source de donnes dans la liste droulante. 9 Dans la bote de dialogue Choisir un type de source de donnes, choisissez Fichier XML et laissez le nom XmlDataSource1 puis cliquez sur OK.

m Figure 10-10 : La bote de dialogue Choisir un type de source de donnes

394 Le guide du codeur

XML

10

10 Dans la bote de dialogue Congurer la source de donnes, cliquez sur le bouton Parcourir sur la mme ligne que le champ Fichier de donnes. Slectionnez le chier livres.xml puis cliquez sur OK.

m Figure 10-11 : La bote de dialogue Congurer la source de donnes XmlDataSource

11 Appuyez sur les touches [Ctrl]+[F5] pour tester la page.

m Figure 10-12 : Les donnes du chier livres.xml sont affiches dans le navigateur

<%@ Page Language="VB" %> <html xmlns="http://www.w3.org/1999/xhtml" >


Le guide du codeur 395

10

DataSet et XML

<head runat="server"> <title>xmlGridView.aspx</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="XmlDataSource1"> <Columns> <asp:BoundField DataField="Titre" HeaderText="Titre" SortExpression="Titre" /> <asp:BoundField DataField="ISBN" HeaderText="ISBN" SortExpression="ISBN" /> </Columns> </asp:GridView> <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/livres.xml"> </asp:XmlDataSource> </div> </form> </body> </html>
m Le code du chier xmlGridView.aspx

Modier le chier XML laide du contrle XmlDataSource Normalement, le contrle XmlDataSource fonctionne seulement en lecture de donnes. Pourtant, vous pouvez lutiliser pour modier les donnes du chier XML. Pour cela, il faut utiliser la mthode GetXmlDocument qui construit lobjet XmlDocument avec ses objets enfants XmlNode en mmoire. Ces objets permettent de modier les donnes en mmoire. laide de la mthode save, ces donnes modies et non modies vont tre sauvegardes en remplaant les donnes du chier XML.

Stockage des donnes dans un chier XML


ASP.NET 2.0 possde des classes et des objets qui permettent de lire ou dcrire des donnes en document XML. Dans cette rubrique, vous allez utiliser la mthode WriteXml de Dataset pour stocker les donnes dans un chier XML sur votre disque dur. 1 Ouvrez Visual Web Developer et le projet xmlProjet.

396 Le guide du codeur

XML

10

2 partir de lExplorateur de solutions, pointez sur le chier Default.aspx, cliquez avec le bouton droit de la souris puis cliquez sur Copier. Notez que le chier Default.aspx a t cr dans la section DataSet. 3 Pointez sur le rpertoire racine, cliquez avec le bouton droit de la souris puis cliquez sur Coller. Renommez ensuite Copie de Default.aspx en dataSet_Xml.aspx. An de travailler sans CodeBehind, supprimez le chier dataSet_Xml.aspx.vb et les attributs CodeFile= dataSet_Xml.aspx.vb et Inherits="_Default" dans la directive de la page dataSet_Xml.aspx. 4 Ouvrez le chier dataSet_Xml.aspx puis passez en mode Design. 5 Slectionnez le contrle GridView, ouvrez son panneau Tches Gridview puis cochez la case Activer la pagination. Dans la fentre Proprits du contrle GridView, donnez la valeur 5 la proprit PageSize. 6 En bas du contrle GridView, glissez un contrle Button, saisissez Stocker dans le fichier XML dans le champ de texte de sa proprit Text. Double-cliquez sur le bouton pour passer en mode Source et gnrer la mthode dvnement Button1_Click. 7 Vous allez faire une nouvelle connexion la base de donnes Northwind et stocker les donnes dans un nouvel objet Dataset que vous allez crer par programme. Il est possible aussi dutiliser Dataset1 li au contrle GridView par la cration dune instance objet de DataSet1. Double-cliquez, pour cela, sur le bouton pour passer en mode Source et gnrer la mthode dvnement Button1_Click. Ensuite, saisissez-y le code suivant :
Dim cnexStrg As String = "database=Northwind;Data " _ & "Source=GIBRALTAR\SQLEXPRESS; Integrated Security=True" Using connexion As New Data.SqlClient.SqlConnection(cnexStrg) Dim commande As New Data.SqlClient.SqlCommand _ ("select ContactName, City, Address, Phone, " _ & "CustomerID from customers", connexion) connexion.Open() Dim dtSet As New Data.DataSet dtSet.DataSetName = "Clients" dtSet.Load(commande.ExecuteReader(), _ Data.LoadOption.OverwriteChanges, "Client") dtSet.WriteXml(Server.MapPath("~/App_Data/dataSetXml.xml")) End Using

8 Appuyez sur les touches [Ctrl]+[F5] pour tester la page. Une fois les donnes affiches dans le contrle GridView, cliquez sur le bouton Stocker dans le chier XML pour excuter la mthode Button1_Click qui va faire une connexion la base de donnes Northwind, rcuprer les donnes et les stocker dans le DataSet. Ensuite, la mthode WriteXml cre ou met jour le chier dataSetXml.xml. Notez que si vous ne voyez pas le chier XML dans le dossier App_Data, il vous faut le slectionner, puis cliquer avec le bouton droit
Le guide du codeur 397

10

DataSet et XML

de la souris puis cliquez sur Actualiser le dossier.


<%@ Page Language="VB" AutoEventWireup="false" %> <script runat="server"> Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Dim cnexStrg As String = "database=Northwind;Data " _ & "Source=GIBRALTAR\SQLEXPRESS; Integrated Security=True" Using connexion As New Data.SqlClient.SqlConnection(cnexStrg) Dim commande As New Data.SqlClient.SqlCommand _ ("select ContactName, City, Address, Phone, " _ & "CustomerID from customers", connexion) connexion.Open() Dim dtSet As New Data.DataSet dtSet.DataSetName = "Clients" dtSet.Load(commande.ExecuteReader(), _ Data.LoadOption.OverwriteChanges, "Client") dtSet.WriteXml(Server.MapPath("~/App_Data/dataSetXml.xml")) End Using End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> dataSetXml.xml </title> </head> <body> <form id="form1" runat="server"> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID" DataSourceID="ObjectDataSource1" AllowPaging="True" PageSize="5"> <Columns> <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" /> <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" /> <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" /> <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" /> <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" /> </Columns> </asp:GridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
398 Le guide du codeur

Check-list

10

DeleteMethod="Delete" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName= "DataSet1TableAdapters.CustomersTableAdapter" > </asp:ObjectDataSource> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Stocker dans le fichier XML" /> </form> </body> </html>
m Le code du chier dataSetXml.xml

propos de linstruction Data.DataSet Pour viter daccder aux classes de System.Data par linstruction Data.Data-

Set, vous pouvez insrer la directive Import comme suit : <%@ Import Namespace="System.Data" %>
Une fois la directive ajoute dans le document, vous pouvez simplier linstruction Data.DataSet en saisissant DataSet seulement.

10.3 Check-list
Voici un rsum des principaux points abords dans ce chapitre :
j j j j

La cration des objets DataSet et TableAdapter; Une vue gnrale du langage XML; Laffichage des donnes du chier XML dans la page ASP.NET 2.0; Le stockage des donnes dans un chier XML.

Le guide du codeur 399

Vous aimerez peut-être aussi