次の方法で共有


.NET 環境での SQLXML 機能へのアクセス

この例では、次のことについて説明します。

  • Microsoft SQLXML マネージ クラス (Microsoft.Data.SqlXml) を使用して、Microsoft .NET Framework 環境で Microsoft SQL Server 2005 にアクセスする方法
  • .NET Framework 環境で生成された DiffGram を使って SQL Server テーブルにデータ更新を適用する方法

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

ms172009.note(ja-jp,SQL.90).gifメモ :
コードでは、接続文字列に 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) が作成されます。

  4. コマンド プロンプトで、DocSample.exe を実行します。