Partager via


Accès aux fonctionnalités SQLXML dans l'environnement .NET

Cet exemple montre :

  • Comment utiliser microsoft SQLXML Managed Classes (Microsoft.Data.SqlXml) pour accéder à Microsoft SQL Server dans l’environnement Microsoft .NET Framework.

  • Comment les DiffGrams générés dans l’environnement .NET Framework peuvent appliquer des mises à jour de données aux tables SQL Server.

Dans cette application, une requête XPath est exécutée sur un schéma XSD. L’exécution de la requête XPath retourne un document XML qui se compose de données de contact (FirstName, LastName). L’application charge le document XML dans le jeu de données dans l’environnement .NET Framework. Les données du jeu de données sont modifiées : le prénom du contact est remplacé par « Susan » pour le premier contact dans le jeu de données. Le DiffGram est généré à partir du jeu de données et la mise à jour spécifiée dans le DiffGram (la modification du prénom de l’employé) est ensuite appliquée à la table Person.Contact.

Remarque

Dans le code, vous devez fournir le nom de l’instance de SQL Server dans la chaîne de connexion.

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

Pour tester l’exemple :

Pour tester cet exemple, vous devez installer Microsoft .NET Framework sur votre ordinateur.

  1. Enregistrez ce schéma XSD (MySchema.xml) dans un dossier :

    <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. Enregistrez le code C# (DocSample.cs) fourni dans cet exemple dans le même dossier dans lequel le schéma est stocké. (Si vous stockez les fichiers dans un autre dossier, vous devrez modifier le code et spécifier le chemin d’accès de répertoire approprié pour le schéma de mappage.)

  3. Compilez le code. Pour compiler le code à l’invite de commandes, utilisez :

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

    Cela crée un exécutable (DocSample.exe).

À l’invite de commandes, exécutez DocSample.exe.