클라이언트 쪽에서 XML 처리(SQLXML 관리되는 클래스)

적용 대상: SQL Server Azure SQL 데이터베이스

이 예제에서는 ClientSideXml 속성의 사용을 보여 줍니다. 애플리케이션은 서버에서 저장 프로시저를 실행합니다. 클라이언트 쪽에서 저장 프로시저의 결과(두 개의 열로 이루어진 행 집합)가 처리되어 XML 문서를 생성합니다.

다음 GetContacts 저장 프로시저는 AdventureWorks 데이터베이스의 Person.Contact 테이블에 있는 직원의 FirstNameLastName 을 반환합니다.

USE AdventureWorks2022;
CREATE PROCEDURE GetContacts @LastName varchar(20)  
AS  
SELECT FirstName, LastName  
FROM   Person.Contact  
WHERE LastName = @LastName  
Go  

이 C# 애플리케이션은 저장 프로시저를 실행하고 CommandText 값을 지정할 때 FOR XML AUTO 옵션을 지정합니다. 애플리케이션에서 SqlXmlCommand 개체의 ClientSideXml 속성은 true로 설정됩니다. 이렇게 하면 행 집합을 반환하고 클라이언트에서 해당 행 집합에 XML 변환을 적용하는 기존 저장 프로시저를 실행할 수 있습니다.

참고

코드에서 연결 문자열에 Microsoft SQL Server instance 이름을 제공해야 합니다.

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;  
}  
}  

이 예제를 테스트하려면 컴퓨터에 Microsoft .NET Framework 설치되어 있어야 합니다.

애플리케이션을 테스트하려면

  1. 저장 프로시저를 만듭니다.

  2. 이 예에 제공된 C# 코드(DocSample.cs)를 폴더에 저장합니다. 코드를 편집하여 적절한 로그인 및 암호 정보를 지정합니다.

  3. 코드를 컴파일합니다. 다음을 사용하여 명령 프롬프트에서 코드를 컴파일합니다.

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

    이렇게 하면 실행 파일(DocSample.exe)이 만들어집니다.

  4. 명령 프롬프트에서 DocSample.exe를 실행합니다.