簡體   English   中英

在TSQL中創建的XML用作ADODB.Recordset

[英]XML Created in TSQL Used as ADODB.Recordset

我正在嘗試使用從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

字節數組看起來像 在此處輸入圖片說明

並且當使用

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

前三個字符(應為<rt )顯示為

在此處輸入圖片說明

所以我認為我的主要問題是我缺少導入SQL中創建的XML的正確方法

任何想法將被應用!

最終從存儲過程更改為函數,這樣我們將獲得一個值,而不僅僅是執行命令。 這解決了System.Byte[]問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM