次の方法で共有


.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 クエリを実行すると、連絡先データ (FirstNameLastName) で構成される XML ドキュメントが返されます。 アプリケーションでは、.NET Framework 環境でこの XML ドキュメントをデータセットに読み込み、 データセットの最初の連絡先の名前を "Susan" に変更します。 このデータセットから DiffGram を生成し、この DiffGram で指定されている更新 (従業員の名前の変更) を、Person.Contact テーブルに適用します。

Note

このコードでは、接続文字列で 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 を実行します。