从 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 时返回的列元数据正确地标识了列:
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接