Программирование >>  Программирование с использованием ajax 

1 ... 299 300 301 [ 302 ] 303 304 305 ... 396


Практическоезан.т Запись XML ИЗ DataSet

Выполните следующие шаги по модификации программы DataRelationExample для записи XML.

1. Откройте проект DataRelationExample и замените цикл foreach

Печать наших вложенных заказчиков и их ID заказов

foreach (DataRow custRow in thisDataSet.Tables[ Customers ].Rows)

следующим кодом:

custOrderRel.Nested = true;

thisDataSet.WriteXml(@ c:\northwind\nwinddata.xml ); Console.WriteLine(

Successfully wrote XML output to file c:\Northwind\nwinddata.xml );

2. Запустите модифицированный пример.

3. Откройте Internet Explorer и загрузите файл С: \Northwind\nwinddata. xml, как показано на рис. 28.6.

у То h k) tnx c углу mxjty Irtemet. Сдокгвг в <e nrted Me from riw-riQ artjv* ccrtert th t caJd 1*хйщ yoj coroiitw Ort. here fa

кт* versions* 10* lar<J4tone=Ves* 7>

<Cv/ttC<n rID ALFKI dfIO>

CComparyN ir Alfreds Futterklste</Corrip nyN T >

<CO t*: ffJ *n, -Maria Andan n. . ectN*T*>

cilon > M -Salas R pras ntatlv /Ci?nt4ctTttl >

.tlJr* Ob re8tr.57 ov. >

<C.t >Bw1ln- Ct, .

<rojn-v Germany<./Cou itry> <РЛг-. 030-00/4321</W>ori#>

< fJ*rP> 10643</>d*r0>

<CU.tomtir ALFKI / .ID >

<0<C) .Oatfl->1997-oe25TOO.OO 00-04 00.yOrd* 0* > <ft qj- dDar .1997-09-22100 00 00-04:OOcyP#q.j.c§riDat <Shriy ir ai 1997-09-02T00 00 00-04:00</Spp 304te>

<P .()htl.2100fTr#. q-.--. <Sf p-Jar r>Alfr ds Fuit rkiet . tf

OJ.pAdOf -Obere 8tr 57- , . in . v> <Ь.ь- Ч>В П1п- . , <5,h.pPpa jl odo;. 12209</SI ipPO Ul(.i.de; <ShipCountr >Carmanv</SrHpCountrv> c/Odeno

<<>f1#S>

Puc. 28.6. Файл С: \ Nor thw i nd\nwin dda t a. xml в Internet Explorer

Описание полученных результатов

Свойство Nested объекта DataRelation сообщает методу WriteXml () о том, что в зыводе XML нужно вложить детали заказов и сами заказы внутрь каждого заказчика. 1)айл nwinddata .xml содержит все данные в таблицах (включая все столбцы, посколь-су при наполнении DataSet специфицировано SELECT * FROM). Информация выводит-:я в читабельном для человека, легко понимаемом формате XML, и этот файл может )ыть просмотрен непосредственно в Microsoft Internet Explorer.



Наряду с WriteXml (), в DataSet также имеется метод ReadXml (). Метод ReadXml () создает DataTable в DataSet и наполняет его данными из файла XML. Более того, созданный DataTable получает имя корневого элемента в документе XML.

Имея файл XML, только что созданный в предыдущем примере, в следующем практическом занятии вы прочитаете его и отобразите на экране.

Практическое saHnmTJreHjJeXMLBDataSet

Выполните следующие шаги для создания примера ReadingXML в Visual С# 2008.

1. Создайте новое консольное приложение по имени ReadingXML в каталоге С:\BegVCSharp\Chapter28.

2. Добавьте в начало кода директиву using для пространства имен System. Data: using System.Data;

3. Добавьте следующий код в метод Main ():

static void Main(string[] args) {

DataSet thisDataSet = new DataSet ();

thisDataSet.ReadXml(@ c:\Northwind\nwinddata.xml );

foreach (DataRow custRow in thisDataSet.Tables[ Customers ].Rows)

Console.WriteLine( ID заказчика: + custRow[ CustomerlD ] + Название: + custRow[ CompanyName ]);

Console.WriteLine( Таблица, созданная ReadXml, называется {0} ,

thisDataSet.Tables[0].TableName); Console.Write( Программа завершена, нажмите Enter для продолжения: ); Console.ReadLine();

4. Запустите приложение. Вы должны увидеть вывод, подобный приведенному ниже, если ранее запускали предыдущий пример для создания файла С:\Northwind\nwinddata.xml:

заказчика:

SANTG

Название:

заказчика:

SAVEA

Название:

заказчика:

SEVES

Название:

заказчика:

SIMOB

Название:

заказчика:

SPECD

Название:

заказчика:

SPLIR

Название:

заказчика:

SUPRD

Название:

заказчика:

THEBI

Название:

заказчика:

THECR

Название:

заказчика:

TOMSP

Название:

заказчика:

TORTU

Название:

заказчика:

TRADH

Название:

заказчика:

TRAIH

Название:

заказчика:

VAFFE

Название:

заказчика:

VICTE

Название:

заказчика:

VINET

Название:

заказчика:

WANDK

Название:

заказчика:

WARTH

Название:

заказчика:

WELLI

Название:

заказчика:

WHITC

Название:



ID заказчика: WILMK Название: Wilman Kala

ID заказчика: WOLZA Название: Wolski Zajazd

ID заказчика: ZACZI Название: Zachary Zithers Ltd.

Таблица, созданная ReadXml, называется Customers

Программа завершена, нажмите Enter для продолжения:

Описание полученных результатов

Здесь используется только одно пространство имен - System. Data. Обращений к каким-либо базам данных нет, потому и не нужны пространства System. Data. SqlClient или System. Data .OleDb. Все, что делается - это создание DataSet с последующим использованием метода ReadXml () для загрузки данных из файла С: \Northwind\ nwinddata. xml. Перегрузка ReadXml (), используемого здесь, требует лишь указания файла XML:

DataSet thisDataSet = new DataSet ();

thisDataSet.ReadXml(@ c:\Northwind\nwinddata.xml );

Затем выводится содержимое таблицы Customers (этот код должен быть знаком по примеру DataRelationExample) и осуществляется проход циклом по каждому DataRow в коллекции Rows таблицы Customers с отображением значений столбцов

CustomerlD и CompanyName:

foreach (DataRow custRow in thisDataSet.Tables[ Customers ].Rows) {

Console.WriteLine( ID заказчика: + custRow[ CustomerlD ] + Название: + custRow[ CompanyName ]);

Откуда вы узнали, что таблица называлась Customers? Как упоминалось ранее, объект DataTable именуется по корневому узлу документа XML, из которого он прочитан; если вернуться к методу WriteXml (), легко увидеть, что корневой узел произведенного документа XML в действительности называется Customers. Чтобы удостовериться, выведите имя первого DataTable в коллекции Tables объекта DataSet, используя свойство TableName этого объекта DataTable:

Console.WriteLine( Таблица, созданная ReadXml, называется {0} , thisDataSet.Tables[О].TableName);

Поддержка SQL в ADO.NET

Эта глава описывает базовые операции ADO.NET, не требуя знания языка запросов баз данных SQL. Все команды ADO.NET, которые читают и записывают в источники данных, транслируются в команды SQL, выполняющие сырые операции в базе данных.

Практическое применение ADO.NET в реальных повседневных ситуациях требует некоторого знания SQL; за более полным изложением SQL, для которого здесь нет места, обращайтесь к соответствующим книгам. Альтернативой является применение LINQ, и тогда вы привязаны к С#!

Но некоторые основы здесь все же будут изложены.

Команды SQL в адаптерах данных

в примерах, приведенных ранее, использовались SQL-команды SELECT, которые возвращают все строки таблицы, такие как эта:

SqlDataAdapter thisAdapter = new SqlDataAdapter ( SELECT * FROM Customers , thisConnection);



1 ... 299 300 301 [ 302 ] 303 304 305 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика