Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Database
Tento příklad ukazuje:
Vytváření parametrů (objekty SqlXmlParameter).
Přiřazení hodnot vlastnostem (název a hodnota) objektů SqlXmlParameter.
V tomto příkladu se vykoná jednoduchý SQL dotaz, který získá křestní jméno, příjmení a datum narození zaměstnance, jehož hodnota příjmení je předána jako parametr. Při specifikaci parametru (LastName) se nastavuje pouze vlastnost Value. Vlastnost Name není nastavena, protože v tomto dotazu je parametr pozicionistický a není potřeba žádné jméno.
Vlastnost CommandType objektu SqlXmlCommand je ve výchozím nastavení Sql. Proto vlastnost není explicitně stanovena.
Poznámka:
V kódu musíte v řetězci spojení uvést název instance Microsoft SQL Serveru.
Toto je kód v C#:
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;
SqlXmlParameter p;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandText = "SELECT FirstName, LastName FROM Person.Contact WHERE LastName=? For XML Auto";
p = cmd.CreateParameter();
p.Value = "Achong";
string strResult;
try
{
strm = cmd.ExecuteStream();
strm.Position = 0;
using(StreamReader sr = new StreamReader(strm))
{
Console.WriteLine(sr.ReadToEnd());
}
}
catch (SqlXmlException e)
{
//in case of an error, this prints error returned.
e.ErrorStream.Position=0;
strResult=new StreamReader(e.ErrorStream).ReadToEnd();
System.Console.WriteLine(strResult);
}
return 0;
}
public static int Main(String[] args)
{
testParams();
return 0;
}
}
Otestování aplikace
Uložte si C# kód (DocSample.cs) uvedený v tomto tématu do složky.
Zkompilujte kód. Pro kompilaci kódu v příkazovém řádku použijte:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csTím vzniká spustitelný soubor (DocSample.exe).
V příkazovém řádku spusťte DocSample.exe.
Pro testování tohoto příkladu musíte mít na počítači nainstalovaný Microsoft .NET Framework.
Místo toho, abyste jako text příkazu určovali SQL dotazy, můžete specifikovat šablonu (jak je vidět v následujícím fragmentu kódu), která spustí updategram (který je zároveň šablonou) a vloží zákaznický záznam. Můžete specifikovat šablony a updategramy v souborech a spustit soubory. Pro více informací viz Spuštění šablonových souborů pomocí vlastnosti CommandText.
SqlXmlCommand cmd = new SqlXmlCommand("Provider=SQLOLEDB;Data Source=SqlServerName;Initial Catalog=Database; Integrated Security=SSPI;");
Stream stm;
cmd.CommandType = SqlXmlCommandType.UpdateGram;
cmd.CommandText = "<ROOT xmlns:sql='urn:schemas-microsoft-com:xml-sql' xmlns:updg='urn:schemas-microsoft-com:xml-updategram'>" +
"<updg:sync>" +
"<updg:before/>" +
"<updg:after>" +
"<Customer CustomerID='aaaaa' CustomerName='Some Name' CustomerTitle='SomeTitle' />" +
"</updg:after>" +
"</updg:sync>" +
"</ROOT>";
stm = cmd.ExecuteStream();
stm = null;
cmd = null;
Použití ExecuteToStream
Pokud máte již existující stream, můžete použít metodu ExecuteToStream místo vytváření objektu Stream a použití metody Execute. Kód z předchozího příkladu je zde upraven tak, aby použil metodu ExecuteToStream:
using System;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=SqlServerName;database=AdventureWorks;Integrated Security=SSPI;";
public static int testParams()
{
SqlXmlParameter p;
MemoryStream ms = new MemoryStream();
StreamReader sr = new StreamReader(ms);
ms.Position = 0;
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.CommandText = "select FirstName, LastName from Person.Contact where LastName = ? For XML Auto";
p = cmd.CreateParameter();
p.Value = "Achong";
cmd.ExecuteToStream(ms);
ms.Position = 0;
Console.WriteLine(sr.ReadToEnd());
return 0;
}
public static int Main(String[] args)
{
testParams();
return 0;
}
}
Poznámka:
Můžete také použít metodu ExecuteXMLReader, která vrací objekt XmlReader. Pro více informací viz Provádění SQL dotazů pomocí metody ExecuteXMLReader.