|
Программирование >> Программирование с использованием ajax
Практическоезан.т Запись 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:
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);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |