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

从 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 的自动转换将有效。

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

Tags:SQL Server 处理

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