Megosztás a következőn keresztül:


SQLXML-funkciók elérése a .NET-környezetben

A következőkre vonatkozik:SQL ServerAzure SQL Database

Ez a példa a következőt mutatja be:

  • Hogyan lehet használni a Microsoft SQLXML Managed Classes (Microsoft.Data.SqlXml) használatát a Microsoft SQL Server eléréséhez a Microsoft .NET Framework környezetében.

  • Hogyan alkalmazhatnak a .NET Framework környezetben generált DiffGramok az SQL Server tábláiban.

Ebben az alkalmazásban egy XPath lekérdezést hajtanak végre egy XSD séma ellen. Az XPath lekérdezés végrehajtása egy XML dokumentumot ad vissza, amely kapcsolati adatokat (Keresztnév, Vezetéknév) tartalmaz. Az alkalmazás betölti az XML dokumentumot a .NET Framework környezetben lévő adathalmazba. Az adathalmazban lévő adatok módosítódnak: a kapcsolattartó keresztnevét "Susan"-ra változtatják az adathalmazban lévő első kapcsolat esetében. A DiffGramot az adathalmazból generálják, majd a DiffGramban megadott frissítés (az alkalmazott keresztnevének megváltoztatása) a Person.Contact táblára kerül.

Megjegyzés:

A kódban meg kell adnod az SQL Server példányának nevét a kapcsolati láncban.

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

A példát tesztelve:

A példát tesztelni a Microsoft .NET Framework-nek be kell telepítenie a számítógépére.

  1. Mentsd el ezt az XSD sémát (MySchema.xml) egy mappában:

    <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. Mentsük el a példában megadott C# kódot (DocSample.cs ugyanabba a mappába, ahol a séma tárolható. (Ha a fájlokat egy másik mappában tárolod, akkor szerkesztened kell a kódot, és meg kell határoznod a megfelelő könyvtár útvonalat a leképezési sémához.)

  3. Fordítsd le a kódot. A kód fordításához a parancssorban a következőket használjuk:

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

    Ez egy futtatható fájlt (DocSample.exelétrehoz ).

A parancssorban hajtsd végre DocSample.exe.