다음을 통해 공유


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

적용 대상: SQL Server Azure SQL Database

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

  • 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 인스턴스의 이름을 제공해야 합니다.

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 실행합니다.