Aracılığıyla paylaş


.NET Ortamında SQLXML İşlevlerine Erişme

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

Bu örnek şunları gösterir:

  • Microsoft .NET Framework ortamında Microsoft SQL Server'a erişmek için Microsoft SQLXML Managed Classes (Microsoft.Data.SqlXml) nasıl kullanılır.

  • .NET Framework ortamında üretilen DiffGramların SQL Server tablolarına veri güncellemelerini nasıl uygulayabileceği.

Bu uygulamada, bir XPath sorgusu bir XSD şemasına karşı çalıştırılır. XPath sorgusunun yürütülmesi, iletişim verilerinden (FirstName, LastName) oluşan bir XML belgesi döndürür. Uygulama, .NET Framework ortamındaki veri setine XML belgesini yükler. Veri setindeki veriler değiştirilir: veri setindeki ilk kişi için konağın adı "Susan" olarak değiştirilir. DiffGram, veri setinden oluşturulur ve DiffGram'da belirtilen güncelleme (çalışanın adındaki değişiklik) Person.Contact tablosuna uygulanır.

Uyarı

Kodda, bağlantı dizesinde SQL Server örneğinin adını belirtmeniz gerekir.

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

Örneği test etmek için:

Bu örneği test etmek için Microsoft .NET Framework'ün bilgisayarınızda yüklü olması gerekir.

  1. Bu XSD şemasını (MySchema.xml) bir klasöre kaydedin:

    <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. Bu örnekte verilen C# kodunu (DocSample.cs) şemanın saklandığı klasöre kaydedin. (Dosyaları farklı bir klasörde saklarsanız, kodu düzenlemeniz ve eşleme şeması için uygun dizin yolunu belirtmeniz gerekir.)

  3. Kodu derleyin. Kodu komut isteğinde derlemek için şunları kullanın:

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

    Bu, bir yürütülebilir (DocSample.exe) oluşturur.

Komut dizisinde, DocSample.exeçalıştırın.