Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 205

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 199 200 201 202 203 204 < 205 > 206 207 208 209 210 211 .. 260 >> Следующая

¦cmd.RootTag = "ROOT";
XmlDocument xmlDoc = new XmlDocumentf);
XmlReader rdr = cmd, ExecuteXmlReader<);
xmlDoc. Load(rdr);
rdr. Close();
string strPathToXml = ,,C:\\MyData.XML"; xmlDoc.Save(strPathToXml); ShowXmlInIE(strPathToXml);
Загрузка данных в объект DataSet с помощью объекта SqIXmlAdapter
Таким же образом загружают и содержимое объекта XmlReodere DataSet, однако поставщик SQL XML .NET Data Provider предоставляет более простой способ решения данной задачи — объект SqlX/iiL-iiia/Ve. Он позволяет загрузить результаты запроса FOR XML в объект DataSet, точно так же, как объект OleDbDataAdapter позволяет загрузить результаты обычного SQL-запроса.
Воспользуйтесь кодом для создания объекта SqIXmlCommandn затем создайте ¦объект SqlXmlCommand, передав его конструктору новый объект SqlXmlCommand, Далее заполните объект DataSet результатами запроса, вызвав метод SqiXmlAdap-terfill;
Visual Basic .NET
в начало модуля кода следующие строки Imports Microsoft.Data.SqlXml
Dim strConn, strSQL As String
strConn = "Provider=SOLDLEDB;Data Source=(local)\NetSDK;" & _ "Initial Catalog=Northwind;Trusted_Connection=Yes;"
StrSQL = "SELECT TOP 2 CustomerlD, CompanyName FROM Customers
"FOR XML AUTO, ELEMENTS" Dim cmd As New SqlXmlCoramandtstrConn) omd.CommandText = strSQL omd.RootTag = "ROOT" Dim da As New SqlXmlAdapter(cmd) Dim els As New DataSetC) da.Fill(ds)
ГЛАВА fa Работа с XML-данными
473
Dim sirPatCToXT,! As String = "С:\ИуОага.ХНГ ds.WriteXml(strPathToXml) ShowXmlInIE(strPatr)ToXml)
Visual C# NET
//Добавьте в начало модуля кода следующие строки using MicrosoftrData.SqlXml;
string strConn, strSQL;
strConn = "Provider=SQLOLEOB;Data Source=(local)\\NetSDK;" + "Initial Catalog=Northwind;Trusted_Connection=Yesi";
strSQL = "SELECT TOP 2 CustomerlD, CotfpanyName FROM Customers " +
"FOR XML ADTO, ELEMENTS"; SqiXBlCommand cmd = new SqlXmlCommancKstrConn); cmd.CommandText = strSOL; emd.RootTag = "ROOT"; Dim da As New SqlXmlAdapter(cmd) Dim ds As New DataSetO da.Fill(ds)
string strPathToXml = •,C;\\MyData.XMLM; ds.WriteXml(strPathToXml); ShowXmlInIE(st rPathToXml);
Использование шаблонов запросов
Для более четкого управления форматом результатов запросов поставщик SQLXML .NET Data Provider поддерживает XML-шаблоны запросов. По сути, шаблон запросов — это XML-документ, содержащий запросы. Когда вы выполняете запрос, входящий в состав шаблона (template query; далее - шаблонный запрос), поставщик SQLXML .NET Data Provider объединяет XML-данные шаблона с результатами запроса.
Показанный ниже шаблон запросов включает два запроса SELECT...FOR XML, возвращающих сведения о размещенных конкретным клиентом заказах и их составе:
<?xml vg:-sion="1.0"' enc3dirtg="utf-3" ?> <R001 xnlns: sql= 'urn: schemas-nricrosof t-com; xml-sql1 > <sql:query>
SELECT OrderlD, CjstomsrID, OrderDate FROM Orders WHERE CustomerlD * 'GHOSH' FOR XML AUTO, ELEMENTS </sql:query> <sql:query>
SELECT OrderlD, ProductJD, Quantity, UnitPrice FROM [Order Details] WHERE OrderlD IN (SELECT OrderlD FROM Orders WHERE CustomerlD = 'GROSR') FOR XML AUTO, ELEMENTS </sql;query> </ROOT>
474
Часть III Автономная работа с данными: объект DataSet модели ado.net
Fie Ш View FjvorKes Tods Help
Address [3j г yt*C4tj tftL
<7xftii versteh""! 0" sWndalonec'yes" ?> - *RO<JT>
- <Custorners>
<Cu5tomeri0>GRaSR</CustomorJD>
< Company Name >GROSFLLA-Restauro:nte*. .Гиптраг.^Пагпр^ </Customer* >
¦¦•«Order»
< OrderlC1 » 10268</0-derID >
^ Cu slomerl О » В ROSR< ! С и Ко m 0 rl D > <Order0ate>l996-07-3OT0D:00:00</O'rfaru3t"> */Ог«1»т$>
- < Orders >
«OlderID>107B5</urder[D> <CurtomerID>GRaSR</Cus>omerro>
< OrderDates 1997-12- lBT0O:00:0tWOrderDav.? • «/'Orders J-
Рис, 12-7. Результаты выполнения шаблона ззиросом
Собственно запрос — это XML-документ. Поставщик SQL XML.NET Data Provider просматривает элементы, относящиеся к пространству v//. и выполняет текст, заключенный в элементах-запросах. Прочие элементы обрабатываются как обычные XML-данные и именно так и отображаются в результатах.
На рис. 12-7 показан XML-документ, сгенерированный при выполнении этого запроса с использованием SQL XML .NET Data Provider. Как видно, корневой элемент шаблона запросов отображается и в итоговом документе.
Выполнение шаблонных запросов с использованием объекта SqlXmlCornmand
Чтобы указать объекту SqlXmlCornmand.что вы работаете с шаблонными запросами при помощи объекта SqlXmlCornmand, задайте свойству CommcmdTyp«этого объекта соответствующее значение из перечисления St/IXndCij»iniana"!'yp> Чтобы указать путь к файлу с запросом, задайте свойству CommandType значение Template-File. Если же вы собираетесь передать реальный текст запроса, задайте свойству
CommandType значение Template.
Ззтсм запрос можно выполнить и сохранить его результаты в виде XML-доку-
мента или объекта DataSet, как я показывал ранее. Следующий фрагмент кода
помещает результаты запроса в объект DataSet: Visual Basic NET
'Добавьте в начало модуля кода следующий строки Imports Microsoft.Data.SqlXml
Предыдущая << 1 .. 199 200 201 202 203 204 < 205 > 206 207 208 209 210 211 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100