从 SQL Server 2005 中处理 XML
2007-05-13 09:26:22 来源:WEB开发网核心提示: using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using System.Xml;void GetXMLColumn {// get a connection str
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Xml;
void GetXMLColumn {
// 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();
// prints "System.String"
Console.WriteLine(rdr[1].GetType());
// fails, invalid cast
XmlReader xr = (XmlReader)rdr[1];
// this works
string s = (string)rdr[1];
}
}
即使使用 SqlReader.GetProviderSpecificValue() 方法,也返回字符串。这在某种程度上是一种异常现象,因为 GetProviderSpecificFieldType 正确地返回了 System.Sql.Types.SqlXml。似乎当前 beta 版本的提供程序中存在问题,暂时不要使用此方法。
// System.Data.SqlTypes.SqlXml
Console.WriteLine(rdr.GetProviderSpecificFieldType(1));
// System.Data.SqlTypes.SqlString
Object o = rdr.GetProviderSpecificValue(1);
Console.WriteLine(o.GetType());
SqlClient 为 XML 参数提供对称功能,您还可以对它们使用 String 数据类型。在预期 XML 类型的位置传入字符串 (NVARCHAR) 的能力依赖于以下事实,即 SQL Server 提供 VARCHAR 或 NVARCHAR 到 XML 数据类型的自动转换。请注意,此转换还可以发生在客户端,如以下示例中所示。向存储过程 insert_xml 提供 string/NVARCHAR 到 XML 的自动转换将有效。
- ››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表' (数...
更多精彩
赞助商链接