Freigeben über


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

In diesem Beispiel wird dargestellt, wie aus SQL- oder Xpath-Abfragen bestehende Vorlagendateien mithilfe der CommandStream-Eigenschaft des SqlXmlCommand-Objekts angegeben werden können. In dieser Anwendung wird ein FileStream-Objekt für eine Befehlsdatei geöffnet und der Dateidatenstrom als auszuführender CommandStream zugewiesen.

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

Es folgt die Beispiel-XML-Vorlage:

<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 in der XML-Vorlage angegebene Abfrage aus und zeigt das daraufhin generierte XML-Dokument auf dem Bildschirm an.

HinweisHinweis

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

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 in diesem Beispiel bereitgestellte XML-Vorlage (TemplateFile.xml) in einem Ordner.

  2. Speichern Sie den C#-Code (DocSample.cs) aus dem Beispiel im selben Ordner, 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 zur Kompilierung des Codes an der Eingabeaufforderung die folgende Zeichenfolge:

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

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

  4. Führen Sie DocSample.exe an der Eingabeaufforderung aus.