Обработка XML-кода на стороне клиента (управляемые классы SQLXML)
Область применения: SQL Server База данных SQL Azure
В этом примере показано использование свойства ClientSideXml. Приложение выполняет хранимую процедуру на сервере. Результат хранимой процедуры (набор строк из двух столбцов) обрабатывается на стороне клиента для создания XML-документа.
Следующая хранимая процедура GetContacts возвращает firstName и LastName сотрудников в таблице Person.Contact в базе данных AdventureWorks.
USE AdventureWorks2022;
CREATE PROCEDURE GetContacts @LastName varchar(20)
AS
SELECT FirstName, LastName
FROM Person.Contact
WHERE LastName = @LastName
Go
Это приложение C# выполняет хранимую процедуру и задает параметр FOR XML AUTO при указании значения CommandText. В приложении свойство ClientSideXml объекта SqlXmlCommand имеет значение true. Это позволяет выполнять существующие хранимые процедуры, возвращающие наборы строк, и применить к ним преобразование XML на стороне клиента.
Примечание.
В коде необходимо указать имя экземпляра Microsoft SQL Server в строка подключения.
using System;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";
public static int testParams()
{
//Stream strm;
SqlXmlParameter p;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.ClientSideXml = true;
cmd.CommandText = "EXEC GetContacts ? FOR XML NESTED";
p = cmd.CreateParameter();
p.Value = "Achong";
using (Stream strm = cmd.ExecuteStream())
{
using (StreamReader sr = new StreamReader(strm))
{
Console.WriteLine(sr.ReadToEnd());
}
}
return 0;
}
public static int Main(String[] args)
{
testParams();
return 0;
}
}
Чтобы протестировать этот пример, на компьютере должна быть установлена платформа .NET Framework Майкрософт.
Тестирование приложения
Создайте хранимую процедуру.
Сохраните в папке код C# (файл DocSample.cs), приведенный в этом примере. Измените этот код, указав нужные имя входа и пароль.
Скомпилируйте код. Чтобы скомпилировать код из командной строки, введите следующую команду.
csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs
Будет создан исполняемый файл (DocSample.exe).
Запустите файл DocSample.exe из командной строки.