我正在尝试将从MS SQL数据库中的存储过程生成的XML用作VS2005应用程序中的Recordset。我遇到的问题是,当以字符串形式读取xml时,字符串结果将以“System.Byte []”形式出现。看到这一点,我将数据类型从String更改为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
Byte数组看起来像
使用
转换为ASCII时catX = System.Text.Encoding.Default.GetString(catzzz)
前三个字符(应为<rt
)出现为
所以我认为我的主要问题是我错过了引入SQL中创建的XML的正确方法
任何想法都会被批评!
答案 0 :(得分:0)
结束从存储过程到函数的更改,这样我们就可以返回一个值,而不是只执行命令。这解决了System.Byte[]
问题。