Бөлісу құралы:


Обработка 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 Майкрософт.

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

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

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

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

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

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

  4. Запустите файл DocSample.exe из командной строки.