Compartir a través de


Acceso a la funcionalidad de SQLXML en el entorno .NET

En este ejemplo se muestra lo siguiente:

  • Cómo usar las clases administradas de Microsoft SQLXML (Microsoft.Data.SqlXml) para acceder a Microsoft SQL Server en el entorno de Microsoft .NET Framework.

  • Cómo los diffGrams que se generan en el entorno de .NET Framework pueden aplicar actualizaciones de datos a las tablas de SQL Server.

En esta aplicación, se ejecuta una consulta XPath en un esquema XSD. La ejecución de la consulta XPath devuelve un documento XML que consta de datos de contacto (FirstName, LastName). La aplicación carga el documento XML en el conjunto de datos en el entorno de .NET Framework. Los datos del conjunto de datos se modifican: el nombre del contacto se cambia a "Susan" para el primer contacto del conjunto de datos. El diffGram se genera a partir del conjunto de datos y la actualización especificada en el DiffGram (el cambio en el nombre del empleado) se aplica a la tabla Person.Contact.

Nota:

En el código, debe proporcionar el nombre de la instancia de SQL Server en la cadena de conexión.

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

Para probar el ejemplo:

Para probar este ejemplo, debe tener microsoft .NET Framework instalado en el equipo.

  1. Guarde este esquema XSD (MySchema.xml) en una carpeta:

    <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. Guarde el código de C# (DocSample.cs) proporcionado en este ejemplo en la misma carpeta en la que se almacena el esquema. (Si almacena los archivos en una carpeta diferente, tendrá que editar el código y especificar la ruta de acceso de directorio adecuada para el esquema de asignación).

  3. Compile el código. Para compilar el código en el símbolo del sistema, use:

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

    Esto crea un archivo ejecutable (DocSample.exe).

En el símbolo del sistema, ejecute DocSample.exe.