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

从 SQL Server 2005 中处理 XML

 2007-05-13 09:26:22 来源:WEB开发网   
核心提示: ProviderType: 25 (25 = XML)ProviderSpecificDataType: System.Data.SqlTypes.SqlXmlDataType: System.Xml.XmlReaderDataTypeName:正如任何其他构建到 SQL Server 中
ProviderType: 25 (25 = XML)
ProviderSpecificDataType: System.Data.SqlTypes.SqlXml
DataType: System.Xml.XmlReader
DataTypeName:

正如任何其他构建到 SQL Server 中的类型一样。请注意,此列的“.NET 类型”是 XmlReader,对于 .NET 而言,它就像任何从文件加载或用 XmlDocument 类产生的 XML 一样。在 ADO.NET 2.0 中的存储过程或参数化语句中将 XML 数据类型列用作参数同样简单:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Xml;
void AddARow {
// get a connection string from a config file
string s = GetConnectStringFromConfigFile("xmldb");
using (SqlConnection conn = new SqlConnection(s))
using (SqlCommand cmd = new SqlCommand(
    "insert xmltab(xmlcol) VALUES(@x)", conn))
{
 conn.Open();
 cmd.Parameters.Add("@x", SqlDbType.Xml);
 // connect the parameter value to a file
 XmlReader xr = XmlReader.Create("somexml.xml");
 cmd.Parameters[0].Value = new SqlXml(xr);
 int i = cmd.ExecuteNonQuery();
}
}

二、是 XML 还是字符串?

前面代码中的两种方法均使用 SqlTypes 中 SQL Server 特定的数据类型。当我使用 SqlReader 的更一般的访问器方法 GetValue() 时,值显著不同。列不是作为 XmlReader 出现,而是作为 .NET String 类出现。请注意,即使元数据将列的 .NET 数据类型识别为 XmlReader,您也不能将该列强制转换为 XmlReader。使用除 GetSqlXml() 之外任何访问器都返回字符串。

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

Tags:SQL Server 处理

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