0

実行のためにSQLクエリWebMethodを渡し、文字列のリストを返すというものがあります

  • クエリはクライアント側から来るので、それが何であるかわかりません

これがwebMethod

<WebMethod()> _
Public Function ExecQuery() As List(Of String)

    Dim result As New List(Of String)
    Dim sqlConn As New sqlConn........
    Dim queryString As String = 'SELECT * FROM tbl_name'
    Dim command As New SqlCommand(queryString, sqlConn)
    sqlConn.Open()
    Dim reader As SqlDataReader = command.ExecuteReader()
    While reader.Read()
        For i As Integer = 0 To reader.FieldCount - 1
            result.Add(reader.Item(reader.GetName(i)))
        Next

    End While
    Return result

End Function

このコードは、次のように文字列のリストを返します

ここに画像の説明を入力してください

私はこれを行うのに十分な経験がありません

質問

これを整理するための最良の方法は何ですか

  • <string>Toを変更<column_name>してラップするにはどうすればよいですか?Unique Name

    以前はを作成しClass、代わりにlist (of string)クラス参照を使用しました

そして私は次のようにリストを取得します

 <className>
     <col1>val1<col1>
     <col2>val1<col1>
 </className>
 <className>
     <col1>val2<col1>
     <col2>val2<col1>
 </className>

次に、このクラス名を使用してjavascriptをループします

4

1 に答える 1

1

これを完全に動的にする必要がある場合は、(@ Jeremyが提案したように)独自のXMLを返します。webmethodにString、ではなくを返すようにしList(Of ...)ます。独自のXML文字列を作成します。

Dim sb As New System.Text.StringBuilder
While reader.Read()
    sb.Append("<record>")
    For i As Integer = 0 To reader.FieldCount - 1
        sb.AppendFormat("<field name=""{0}"">", reader.GetName(i))
        sb.Append(reader(i).ToString())
        sb.Append("</field>")
    Next
    sb.Append("</record>")
End While

Return sb.ToString()

DOMメソッドを使用してJavascriptコードのXMLを解析します。

于 2012-11-07T17:03:48.103 に答える