Megosztás a következőn keresztül:


Sablonfájlok végrehajtása a CommandStream tulajdonság használatával

A következőkre vonatkozik:SQL ServerAzure SQL Database

Ez a példa bemutatja, hogyan lehet SQL vagy XPath lekérdezésekből álló sablonfájlok megadni a SqlXmlCommand objektum CommandStream tulajdonságával. Ebben az alkalmazásban egy FileStreamobject nyitunk meg egy parancsfájlhoz, és a fájlfolyam a végrehajtott CommandStreamként van hozzárendelve.

A következő példában a CommandType tulajdonság SqlXmlCommandType.Template (nem TemplateFile) néven van megadva.

Ez a minta-XML sablon:

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

Ez a minta, C# alkalmazás. Az alkalmazás teszteléséhez mentse el a sablont (TemplateFile.xml), majd hajtsa végre az alkalmazást. Az alkalmazás végrehajtja az XML sablonban megadott lekérdezést, és megjeleníti a képernyőn generált XML dokumentumot.

Megjegyzés:

A kódban meg kell adnod a Microsoft SQL Server példányának nevét a kapcsolódási láncban.

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

Az alkalmazás tesztelése

  1. Mentsük el a példában található XML sablont (TemplateFile.xml) egy mappába.

  2. Mentsük el a C# kódot (DocSample.cs), amely ebben a példában található, ugyanabba a mappába, ahol a séma tárolható. (Ha a fájlokat egy másik mappában tárolod, akkor szerkesztened kell a kódot, és meg kell határoznod a megfelelő könyvtár útvonalat a leképezési sémához.)

  3. Fordítsd le a kódot. A kód fordításához a parancssorban a következőket használjuk:

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

    Ez egy futtatható fájlt (DocSample.exelétrehoz ).

  4. A parancssorban hajtsd végre DocSample.exe.