此示例显示:
如何使用 Microsoft SQLXML 托管类(Microsoft.Data.SqlXml)在 Microsoft .NET Framework 环境中访问 Microsoft SQL Server。
.NET Framework 环境中生成的 DiffGram 如何将数据更新应用于 SQL Server 表。
在此应用程序中,针对 XSD 架构执行 XPath 查询。 XPath 查询的执行返回一个 XML 文档,其中包含联系人数据(FirstName、 LastName)。 应用程序在 .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。