Bagikan melalui


Menjalankan File Templat dengan Menggunakan Properti CommandText

Berlaku untuk: SQL ServerAzure SQL Database

Contoh ini menggambarkan bagaimana file templat yang terdiri dari kueri SQL atau XPath dapat ditentukan dengan menggunakan properti CommandText. Alih-alih menentukan kueri SQL atau XPath sebagai nilai CommandText, Anda dapat menentukan nama file sebagai nilai. Dalam contoh berikut, properti CommandType ditentukan sebagai SqlXmlCommandType.TemplateFile.

Aplikasi sampel menjalankan templat ini:

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

Ini adalah aplikasi sampel C#. Untuk menguji aplikasi, simpan templat (TemplateFile.xml) lalu jalankan aplikasi.

Catatan

Dalam kode, Anda harus memberikan nama instans Microsoft SQL Server di string koneksi.

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;  
         SqlXmlCommand cmd = new SqlXmlCommand(ConnString);  
         cmd.CommandType = SqlXmlCommandType.TemplateFile;  
         cmd.CommandText = "TemplateFile.xml";  
         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;  
      }  
   }  

Untuk menguji aplikasi

  1. Pastikan Anda memiliki Microsoft .NET Framework yang terinstal di komputer Anda.

  2. Simpan templat XML (TemplateFile.xml) yang disediakan dalam contoh ini dalam folder.

  3. Simpan kode C# (DocSample.cs) yang disediakan dalam contoh ini di folder yang sama tempat skema disimpan. (Jika Anda menyimpan file di folder yang berbeda, Anda harus mengedit kode dan menentukan jalur direktori yang sesuai untuk skema pemetaan.)

  4. Kompilasi kode. Untuk mengkompilasi kode di prompt perintah, gunakan:

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

    Ini membuat executable (DocSample.exe).

  5. Pada prompt perintah, jalankan DocSample.exe.

Jika Anda meneruskan parameter ke templat, nama parameter harus dimulai dengan tanda (@); misalnya, p.Name="@ContactID", di mana p adalah objek SqlXmlParameter.

Ini adalah templat yang diperbarui yang mengambil satu parameter.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <sql:header>  
     <sql:param name='ContactID'>1</sql:param>    
  </sql:header>  
  <sql:query>  
    SELECT ContactID, FirstName, LastName  
    FROM   Person.Contact  
    WHERE  ContactID=@ContactID  
    FOR XML AUTO  
  </sql:query>  
</ROOT>  

Ini adalah kode yang diperbarui di mana parameter diteruskan untuk menjalankan templat.

public static int testParams()  
{  
  
   Stream strm;  
   SqlXmlParameter p;  
  
   SqlXmlCommand cmd = new SqlXmlCommand(ConnString);  
   cmd.CommandType = SqlXmlCommandType.TemplateFile;  
   cmd.CommandText = "TemplateFile.xml";  
   p = cmd.CreateParameter();  
   p.Name="@ContactID";  
   p.Value = "1";  
   strm = cmd.ExecuteStream();  
   StreamReader sw = new StreamReader(strm);  
   Console.WriteLine(sw.ReadToEnd());  
   return 0;        
}