Поделиться через


Обработка XML-кода на стороне клиента (управляемые классы SQLXML)

В этом примере продемонстрировано использование свойства ClientSideXml. Приложение выполняет хранимую процедуру на сервере. Результат хранимой процедуры (набор строк из двух столбцов) обрабатывается на стороне клиента для создания XML-документа.

Следующая хранимая процедура GetContacts возвращает свойства FirstName и LastName сотрудников из таблицы Person.Person в базе данных База данных AdventureWorks2008R2.

USE AdventureWorks2008R2;
GO
CREATE PROCEDURE GetContacts @LastName varchar(20)
AS
SELECT FirstName, LastName
FROM   Person.Person
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=AdventureWorks2008R2;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;
}
}

Тестирование приложения

  1. Создайте хранимую процедуру.

  2. Сохраните в папке код C# (файл DocSample.cs), приведенный в этом примере. Измените этот код, указав нужные имя входа и пароль.

  3. Скомпилируйте код. Чтобы скомпилировать код из командной строки, введите следующую команду.

    csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs
    

    Будет создан исполняемый файл (DocSample.exe).

  4. Запустите файл DocSample.exe из командной строки. Чтобы проверить этот пример, необходимо установить на компьютер платформу Microsoft .NET Framework.