【发布时间】:2013-09-26 20:32:21
【问题描述】:
我正在使用OleDbConnection 连接到 SQL Server 2008 数据库。我将一列作为XML 数据类型返回。我需要将其转换为标准字符串类型,以便可以将其存储在字符串变量中。当我打电话给ToString() 时,我得到的只是System.Byte[]。如果我使用 System.Text.Encoding 类,我得到的只是 2 个奇数字符。
我尝试了ExecuteScalar、SqlDataAdapter、SqlDataReader 和DataTable。都给我相同的结果。
我无法更改连接类型或数据类型。
我在 SSIS 中使用 c# 脚本任务。虽然这应该无关紧要。
【问题讨论】:
-
你试过
SELECT CAST(XMLFIELD AS NVARCHAR(2048)) AS XMLFIELD FROM TABLE吗? -
来自数据库表还是 C# 中的数据表?我无法更改数据库中的查询。虽然我想我可以在 C# 中使用我的数据表中的选择。虽然我不确定语法。
-
也许如果你展示一些代码,你为什么不能改变查询就很明显了。
-
“没关系”,但它是代码味道。这种设计选择是否有原因?
-
它是一个存储过程。我只能调用它,不能修改它,并因此取回 XML 数据类型。如果我尝试上述任何一种方法来获取该列,我所能得到的就是 System.Byte[]。
标签: c# xml sql-server-2008 ssis