Wykonywanie za pomocą właściwości 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ślania kwerendy SQL lub wyrażenie XPath jako wartość CommandText, można określić nazwę pliku jako wartość.W poniższym przykładzie CommandType właściwość jest określona jako SqlXmlCommandType.TemplateFile.
Przykładowa aplikacja wykonuje tego szablonu:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:query>
SELECT TOP 2 BusinessEntityID, FirstName, LastName
FROM Person.Person
FOR XML AUTO
</sql:query>
</ROOT>
Jest to aplikacja przykładowa C#.Aby przetestować aplikację, Zapisz szablon (TemplateFile.xml) a wykonać aplikacji.
Ostrzeżenie
W kodzie, należy podać nazwę wystąpienie programu Microsoft SQL Server w połączeniu z ciąg.
using System;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks2008R2;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 .NET Framework są zainstalowane na komputerze.
Zapisz szablon XML (TemplateFile.xml), który jest dostarczany w tym przykładzie w folderze.
Zapisz kod C# (DocSample.cs) dostarczonego w tym przykładzie w tym samym folderze, w którym przechowywany jest schemat.(Jeśli pliki są przechowywane w innym folderze, będzie trzeba 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ć zapisu:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csTworzy plik wykonywalny (DocSample.exe).
W wiersz polecenia wykonać DocSample.exe.
Jeśli parametr przekazać do szablonu, nazwa parametru musi rozpoczynać się znak (@); na przykład, p.Name="@BusinessEntityID", gdzie p jest SqlXmlParameter obiektu.
Jest to uaktualniony szablon, który przyjmuje jeden parametr.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header>
<sql:param name='BusinessEntityID'>1</sql:param>
</sql:header>
<sql:query>
SELECT BusinessEntityID, FirstName, LastName
FROM Person.Person
WHERE BusinessEntityID=@BusinessEntityID
FOR XML AUTO
</sql:query>
</ROOT>
Zaktualizowany kod, w którym parametr jest przekazywana do wykonać 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="@BusinessEntityID";
p.Value = "1";
strm = cmd.ExecuteStream();
StreamReader sw = new StreamReader(strm);
Console.WriteLine(sw.ReadToEnd());
return 0;
}