在用戶端上處理 XML (SQLXML Managed 類別)
此範例說明 ClientSideXml 屬性的用法。應用程式會在伺服器上執行預存程序。預存程序的結果 (兩個資料行的資料列集) 會在用戶端上進行處理以產生 XML 文件。
下列 GetContacts 預存程序會在 AdventureWorks 資料庫的 Person.Contact 資料表中,傳回員工的 FirstName 和 LastName。
USE AdventureWorks
CREATE PROCEDURE GetContacts @LastName varchar(20)
AS
SELECT FirstName, LastName
FROM Person.Contact
WHERE LastName = @LastName
Go
此 C# 應用程式會執行預存程序,並指定 FOR XML AUTO 選項來指定 CommandText 值。在應用程式中,SqlXmlCommand 物件的 ClientSideXml 屬性會設定為 True。這可讓您執行預先存在的預存程序以傳回資料列集,並在用戶端上,將 XML 轉換套用到該資料列集。
[!附註]
在程式碼中,您必須於連接字串內提供 Microsoft SQL Server 執行個體的名稱。
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.ClientSideXml = true;
cmd.CommandText = "EXEC GetContacts ? FOR XML NESTED";
p = cmd.CreateParameter();
p.Value = "Achong";
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;
}
}
若要測試此範例,您必須先在電腦上安裝 Microsoft .NET Framework。
若要測試應用程式
建立預存程序。
將此範例中提供的 C# 程式碼 (DocSample.cs) 儲存到資料夾中。編輯該程式碼來指定適當的登入和密碼資訊。
編譯程式碼。若要在命令提示字元中編譯程式碼,請使用:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs
這樣會建立一個可執行檔 (DocSample.exe)。
在命令提示字元中執行 DocSample.exe。