Delen via


Sjabloonbestanden uitvoeren met behulp van de eigenschap CommandStream

Van toepassing op:SQL ServerAzure SQL Database

Dit voorbeeld illustreert hoe sjabloonbestanden die bestaan uit SQL- of XPath-queries kunnen worden gespecificeerd door gebruik te maken van de CommandStream-eigenschap van het SqlXmlCommand-object. In deze applicatie wordt een FileStreamobject geopend voor een commandobestand, en wordt de bestandsstroom toegewezen als de uitgevoerde CommandStream.

In het volgende voorbeeld wordt de CommandType-eigenschap gespecificeerd als SqlXmlCommandType.Template (niet als TemplateFile).

Dit is het voorbeeld XML-sjabloon:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <sql:query>  
    SELECT TOP 2 ContactID, FirstName, LastName   
    FROM   Person.Contact  
    FOR XML AUTO  
  </sql:query>  
</ROOT>  

Dit is de voorbeeld van de C#-toepassing. Om de applicatie te testen, sla je de template op (TemplateFile.xml) en voer je vervolgens de applicatie uit. De applicatie voert de query uit die in het XML-sjabloon is gespecificeerd en toont het gegenereerde XML-document op het scherm.

Opmerking

In de code moet je de naam van de instantie van Microsoft SQL Server in de verbindingsstring opgeven.

using System;  
using Microsoft.Data.SqlXml;  
using System.IO;  
  
class Test  
{  
      static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";  
      public static int testParams()  
      {  
         //Stream strm;  
         MemoryStream ms = new MemoryStream();  
         StreamWriter sw = new StreamWriter(ms);  
         ms.Position = 0;  
         SqlXmlCommand cmd = new SqlXmlCommand(ConnString);  
         cmd.CommandStream = new FileStream("TemplateFile.xml", FileMode.Open, FileAccess.Read);  
         cmd.CommandType = SqlXmlCommandType.Template;  
         using (Stream strm = cmd.ExecuteStream())  
         {  
            using (StreamReader sr = new StreamReader(strm)){  
               Console.WriteLine(sr.ReadToEnd());  
            }  
         }  
         return 0;        
      }  
  
      public static int Main(String[] args)  
      {  
         testParams();     
         return 0;  
      }  
   }  

De toepassing testen

  1. Sla het XML-sjabloon (TemplateFile.xml) dat in dit voorbeeld wordt geleverd op in een map.

  2. Sla de C#-code (DocSample.cs) die in dit voorbeeld wordt gegeven op in dezelfde map waarin het schema is opgeslagen. (Als je de bestanden in een andere map opslaat, moet je de code bewerken en het juiste directorypad voor het mappingschema opgeven.)

  3. Compileer de code. Om de code in de opdrachtprompt te compileren, gebruik u:

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

    Dit creƫert een uitvoerbaar bestand (DocSample.exe).

  4. Voer bij de opdrachtprompt DocSample.exeuit.