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)

最初の 3 文字 (それは である必要があります<rt)

ここに画像の説明を入力

したがって、私の主な問題は、SQL で作成された XML を取り込む適切な方法がないことだと思います

どんなアイデアも適用されます!

4

1 に答える 1