.NET 환경에서 SQLXML 기능 액세스

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

이 예에서 보여 주는 항목은 다음과 같습니다.

  • Microsoft SQLXML 관리 클래스(Microsoft.Data.SqlXml)를 사용하여 Microsoft .NET Framework 환경에서 Microsoft SQL Server 액세스하는 방법입니다.

  • .NET Framework 환경에서 생성된 DiffGram이 SQL Server 테이블에 데이터 업데이트를 적용하는 방법입니다.

이 애플리케이션에서는 XSD 스키마에 대해 XPath 쿼리를 실행합니다. XPath 쿼리를 실행하면 연락처 데이터(FirstName, LastName)로 구성된 XML 문서가 반환됩니다. 애플리케이션은 .NET Framework 환경의 데이터 세트에 XML 문서를 로드합니다. 그런 다음 데이터 세트에 있는 첫 번째 연락처에서 이름을 "Susan"으로 변경합니다. 그리고 해당 데이터 세트에서 DiffGram을 생성하며, 이 DiffGram에 지정된 업데이트(직원 이름에 대한 변경 내용)를 Person.Contact 테이블에 적용합니다.

참고

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

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 설치되어 있어야 합니다.

  1. 이 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>  
    
  2. 이 예에서 제공하는 C# 코드(DocSample.cs)를 스키마가 저장된 폴더와 같은 폴더에 저장합니다. (다른 폴더에 파일을 저장하는 경우 코드를 편집하여 매핑 스키마에 대해 적합한 디렉터리 경로를 지정해야 합니다.)

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

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

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

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