存取 .NET 環境中的 SQLXML 功能
此範例顯示:
如何使用 Microsoft SQLXML Managed 類別 (Microsoft.Data.SqlXml) 來存取 Microsoft .NET Framework 環境中的 sql Server Microsoft。
.NET Framework 環境中產生的 DiffGram 如何將數據更新套用至 SQL Server 數據表。
在此應用程式中,會針對 XSD 架構執行 XPath 查詢。 XPath 查詢的執行會傳回包含聯繫人資料 (FirstName, LastName) 的 XML 檔。 應用程式會在 .NET Framework 環境中的數據集中載入 XML 檔。 數據集中的數據已修改:聯繫人的名字會變更為數據集中第一個聯繫人的 “Susan”。 DiffGram 是從數據集產生,而 DiffGram 中指定的更新會接著套用至 Person.Contact 數據表。
注意
在程式代碼中,您必須在 連接字串 中提供 SQL Server 實例的名稱。
using System;
using System.Data;
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()
{
DataRow row;
SqlXmlAdapter ad;
//need a memory stream to hold diff gram temporarily
MemoryStream ms = new MemoryStream();
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.RootTag = "ROOT";
cmd.CommandText = "Con";
cmd.CommandType = SqlXmlCommandType.XPath;
cmd.SchemaPath = "MySchema.xml";
//load data set
DataSet ds = new DataSet();
ad = new SqlXmlAdapter(cmd);
ad.Fill(ds);
row = ds.Tables["Con"].Rows[0];
row["FName"] = "Susan";
ad.Update(ds);
return 0;
}
public static int Main(String[] args)
{
testParams();
return 0;
}
}
若要測試範例:
若要測試此範例,您必須在計算機上安裝 Microsoft .NET Framework。
將此 XSD 架構 (MySchema.xml) 儲存在資料夾中:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xsd:element name="Con" sql:relation="Person.Contact" > <xsd:complexType> <xsd:sequence> <xsd:element name="FName" sql:field="FirstName" type="xsd:string" /> <xsd:element name="LName" sql:field="LastName" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="ContactID" type="xsd:integer" /> </xsd:complexType> </xsd:element> </xsd:schema>
將本範例中提供的 C# 程式代碼 (DocSample.cs) 儲存在儲存架構的相同資料夾中。 (如果您將檔案儲存在不同的資料夾中,則必須編輯程式代碼,並指定對應架構的適當目錄路徑。
編譯程序代碼。 若要在命令提示字元編譯程序代碼,請使用:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs
這會建立可執行檔 (DocSample.exe)。
在命令提示字元中,執行DocSample.exe。