Freigeben über


Ausführen von Vorlagendateien mit der 'CommandStream'-Eigenschaft

In diesem Beispiel wird veranschaulicht, wie Vorlagendateien, die aus SQL- oder XPath-Abfragen bestehen, mithilfe der CommandStream-Eigenschaft des SqlXmlCommand-Objekts angegeben werden können. In dieser Anwendung wird ein FileStreamobject für eine Befehlsdatei geöffnet, und der Dateidatenstrom wird als CommandStream zugewiesen, der ausgeführt wird.

Im folgenden Beispiel wird die CommandType-Eigenschaft als SqlXmlCommandType.Template (nicht als TemplateFile) angegeben.

Dies ist die XML-Beispielvorlage:

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

Dies ist die C#-Beispielanwendung. Um die Anwendung zu testen, speichern Sie die Vorlage (TemplateFile.xml), und führen Sie dann die Anwendung aus. Die Anwendung führt die Abfrage aus, die in der XML-Vorlage angegeben ist, und zeigt das XML-Dokument an, das auf dem Bildschirm generiert wird.

Hinweis

Im Code müssen Sie den Namen der Instanz von Microsoft SQL Server in der Verbindungszeichenfolge angeben.

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

So testen Sie die Anwendung

  1. Speichern Sie die XML-Vorlage (TemplateFile.xml), die in diesem Beispiel in einem Ordner bereitgestellt wird.

  2. Speichern Sie den C#-Code (DocSample.cs), der in diesem Beispiel im selben Ordner bereitgestellt wird, in dem das Schema gespeichert ist. (Wenn Sie die Dateien in einem anderen Ordner speichern, müssen Sie den Code bearbeiten und den entsprechenden Verzeichnispfad für das Zuordnungsschema angeben.)

  3. Kompilieren Sie den Code. Verwenden Sie folgendes, um den Code an der Eingabeaufforderung zu kompilieren:

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

    Dadurch wird eine ausführbare Datei (DocSample.exe) erstellt.

  4. Führen Sie an der Eingabeaufforderung DocSample.exeaus.