Доступ к функциональным возможностям SQLXML в среде .NET
В этом примере показано следующее.
Как использовать управляемые классы Microsoft SQLXML (Microsoft.Data.SqlXml) для доступа к Microsoft SQL Server в среде Microsoft .NET Framework.
Как дельты, сформированные в среде .NET Framework могут применять изменения данных к таблицамSQL Server.
В этом приложении запрос XPath выполняется применительно к XSD-схеме. Запрос XPath возвращает XML-документ, содержащий данные контактов (FirstName, LastName). Приложение загружает XML-документ в набор данных в среде .NET Framework. Данные в наборе данных изменяются: имя первого контакта в наборе данных меняется на «Сьюзен». Из набора данных создается дельта, и обновление, заданное в дельте (изменение имени сотрудника) применяется к таблице Person.Contact.
Примечание |
|---|
В коде необходимо задать имя экземпляра SQL Server в строке соединения. |
using System;using System.Data;using Microsoft.Data.SqlXml;using System.IO;class Test{ static string ConnString = "Provider=SQLOLEDB;Server=SqlServerName;database=AdventureWorks;Integrated Security=SSPI;"; public static int testParams() { DataRow row; SqlXmlAdapter ad; //need a memory stream to hold diff gram temporarily MemoryStream ms = new MemoryStream(); SqlXmlCommand cmd = new SqlXmlCommand(ConnString); cmd.RootTag = "ROOT"; cmd.CommandText = "Con"; cmd.CommandType = SqlXmlCommandType.XPath; cmd.SchemaPath = "MySchema.xml"; //load data set DataSet ds = new DataSet(); ad = new SqlXmlAdapter(cmd); ad.Fill(ds); row = ds.Tables["Con"].Rows[0]; row["FName"] = "Susan"; ad.Update(ds); return 0; } public static int Main(String[] args) { testParams(); return 0; }}
Проверка этого примера
Чтобы проверить этот пример, необходимо установить на компьютер платформу Microsoft .NET Framework.
Сохраните эту XSD-схему (MySchema.xml) в папке
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xsd:element name="Con" sql:relation="Person.Contact" > <xsd:complexType> <xsd:sequence> <xsd:element name="FName" sql:field="FirstName" type="xsd:string" /> <xsd:element name="LName" sql:field="LastName" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="ContactID" type="xsd:integer" /> </xsd:complexType> </xsd:element></xsd:schema>Сохраните код на языке C# (файл DocSample.cs), приведенный в этом примере, в той папке, где хранится схема (если сохранить файлы в разных папках, то придется изменить код, указав путь к каталогу, в котором находится схема сопоставления).
Скомпилируйте код. Чтобы скомпилировать код из командной строки, введите следующую команду.
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csБудет создан исполняемый файл (DocSample.exe).
Запустите файл DocSample.exe из командной строки.
Примечание