0

我正在尝试使用从我们的 MS SQL 数据库中的存储过程生成的 XML 作为 VS2005 应用程序中的记录集。我遇到的问题是,在将 xml 作为字符串读取时,字符串结果以“System.Byte []”的形式出现。看到这一点,我将数据类型从 String 更改为 Byte() 并尝试使用 Byte 数组。Byte 数组似乎与我想要接收的数据没有任何关系。我想知道是否有一种方法可以处理我不知道的 SQL 生成的 XML 文件。这是一些示例代码。

这是 SQL SMS 中存储过程的结果

在此处输入图像描述

使用此代码,我将 System.byte[] 作为我的字符串:

Dim ADOrs As ADODB.Recordset
Dim SQLString1 As New System.Text.StringBuilder(180)
Dim catzzz as String

SQLString1.Append("exec reports_selectReportMetaData @companyCode = '001'")

ADOrs = fnReturnRecordset(SQLString1.ToString) 'function executes the query

Do While Not ADOrs.EOF
    catzzz = ADOrs("XML_F52E2B61-18A1-11d1-B105-00805F49916B").Value.ToString
    Debug.WriteLine(catzzz)
Loop

这就是我得到真正奇怪的字节数组的方式

Dim ADOrs As ADODB.Recordset
Dim SQLString1 As New System.Text.StringBuilder(180)
Dim catzzz As Byte()

SQLString1.Append("exec reports_selectReportMetaData @companyCode = '001'")

ADOrs = fnReturnRecordset(SQLString1.ToString)'function executes the query

Do While Not ADOrs.EOF
    catzzz = ADOrs("XML_F52E2B61-18A1-11d1-B105-00805F49916B").Value           
Loop

字节数组看起来像 在此处输入图像描述

当使用转换为 ASCII 时

catX = System.Text.Encoding.Default.GetString(catzzz)

前三个字符(应该是<rt

在此处输入图像描述

所以我认为我的主要问题是我错过了引入在 SQL 中创建的 XML 的正确方法

任何想法都会被应用!

4

1 回答 1

0

最终从存储过程更改为函数,以便我们返回一个值,而不仅仅是执行命令。这解决了这个System.Byte[]问题。

于 2013-08-13T14:30:34.763 回答