WEB开发网
开发学院数据库MSSQL Server 从 SQL Server 2005 中处理 XML 阅读

从 SQL Server 2005 中处理 XML

 2007-05-13 09:26:22 来源:WEB开发网   
核心提示: 1.在大多数情况下,当您需要 SQL Server 2000 中的 FOR XML EXPLICIT 模式时,从 SQL Server 2005 中处理 XML(2),有一种新的、便于使用的 FOR XML PATH 模式,2.使用 TYPE 指令,我将通过一些简单的代码进行展示,假设我有

1.

在大多数情况下,当您需要 SQL Server 2000 中的 FOR XML EXPLICIT 模式时,有一种新的、便于使用的 FOR XML PATH 模式。

2.

使用 TYPE 指令,除了生成流之外,您还可以生成 XML 数据类型列。

3.

可以嵌套 FOR XML 表达式。

4.

SELECT ... FOR XML 可以使用 ROOT 指令生成 XML 文档以及 XML 片段。

5.

您可以将标准的 XSD 架构预先挂起到流。

通过引用 ADO.NET 2.0 中的关系 datatype 枚举,您可以初步了解到 XML 是一种一流的关系数据库类型。System.Data.DbType 和 System.Data.SqlDbType 分别包含 DbType.Xml 和 SqlDbType.Xml 的附加值。在 System.Data.SqlTypes 命名空间中也有一个新的类,它是 SqlXml。这个类充当 XML 类型值的 XmlReader 实例工厂。我将通过一些简单的代码进行展示。假设我有一份 SQL Server 表,如下所示:

CREATE TABLE xmltab (
 id INT IDENTITY PRIMARY KEY,
 xmlcol XML)

我可以使用以下 ADO.NET 2.0 代码在客户端上访问此表。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Xml;
void GetXMLColumn {
// "Generic Coding..." article for shows how to
// get a connection string from a config file
string s = GetConnectStringFromConfigFile("xmldb");
using (SqlConnection conn = new SqlConnection(s))
using (SqlCommand cmd = new SqlCommand(
    "select * from xmltab", conn))
{
 conn.Open();
 SqlDataReader rdr = cmd.ExecuteReader();
 DataTable t = rdr.GetSchemaTable();
 while (rdr.Read())
  {
   SqlXml sx = rdr.GetSqlXml(1);
   XmlReader xr = sx.CreateReader();
   xr.Read();
   Console.WriteLine(xr.ReadOuterXml());
  }
}
}

我浏览 GetSchemaTable 产生的 DataTable 时返回的列元数据正确地标识了列:

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL Server 处理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接