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ę
Upewnij się, że Microsoft System .NET framework zainstalowana na komputerze.
Zapisz szablon XML (TemplateFile.xml), który znajduje się w tym przykładzie w folderze.
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.)
Skompiluj kod.Aby skompilować kod w wiersz polecenia, należy użyć:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csSpowoduje to utworzenie pliku wykonywalnego (DocSample.exe).
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;
}