Udostępnij przez


Wykonywanie za pomocą właściwość CommandText pliki szablonów

This example illustrates how template files that consist of SQL or XPath queries can be specified by using the CommandTextproperty.Zamiast określać jako wartość kwerendy SQL lub wyrażenie XPath CommandText, można określić nazwę pliku jako wartość. W poniższym przykładzie CommandType Właściwość jest określony jako SqlXmlCommandType.TemplateFile.

Przykładowa aplikacja wykonuje tego szablonu:

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

Jest to aplikacja przykładowa C#.Aby przetestować aplikację, Zapisz szablon (TemplateFile.xml) i następnie wykonywania aplikacji.

Uwaga

W kodzie musisz podać nazwę wystąpienie programu Microsoft SQL Server w ciąg połączenia.

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

Aby przetestować aplikację

  1. Upewnij się, że Microsoft System .NET framework zainstalowana na komputerze.

  2. Zapisz szablon XML (TemplateFile.xml), który znajduje się w tym przykładzie w folderze.

  3. Zapisz C# kod (DocSample.cs), który znajduje się w tym przykładzie, w tym samym folderze, w którym przechowywany jest schemat.(Jeśli pliki są przechowywane w innym folderze, należy edytować kod i określ ścieżka katalogu właściwe dla mapowania schematu.)

  4. Skompiluj kod.Aby skompilować kod w wiersz polecenia, należy użyć:

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

    Spowoduje to utworzenie pliku wykonywalnego (DocSample.exe).

  5. W wiersz polecenia należy wykonać DocSample.exe.

Jeśli parametr zostanie przekazany do szablonu, nazwa parametru musi zaczynać się znak (@); na przykład p.Name="@ContactID", gdzie jest p SqlXmlParameter obiekt.

Jest to uaktualnionego szablonu, który przyjmuje jeden parametr.

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

Jest to kod zaktualizowane, w którym parametr jest przekazywana do wykonać tego szablonu.

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