2

データ テーブルの内容を文字列に変換しています。データセットに 12 行と 8 列があるとします。最後に、Dict には 12 行または 96 列が含まれます。以下のコードの何が問題になっていますか?行をリセットするにはどうすればよいですか?

ティア。

        Dim ds As DataSet = ClsDB.GetDataSet(sql)

    If Not ds Is Nothing AndAlso ds.Tables.Count > 0 Then
        Dim row As New List(Of KeyValuePair(Of String, String))
        Dim dict As New List(Of KeyValuePair(Of Integer, Object))
        Dim dt As DataTable = ds.Tables(0)
        Dim i As Integer = 0 

        For Each dr As DataRow In dt.Rows 
            For Each dc As DataColumn In dt.Columns
                row.Add(New KeyValuePair(Of String, String)(dc.ColumnName, IIf(Not IsDBNull(dr.Item(dc.ColumnName)), dr.Item(dc.ColumnName), "")))
            Next
            dict.Add(New KeyValuePair(Of Integer, Object)(i, row))
            i += i 
        Next

        Return New JavaScriptSerializer().Serialize(dict)
    Else
        Return "No Data"
    End If
4

1 に答える 1

4

実際、ループrowの外でdr宣言する必要はありません。rowdr

For Each dr As DataRow In dt.Rows
    Dim row As New List(Of KeyValuePair(Of String, String))   // <<-         
    For Each dc As DataColumn In dt.Columns                 
        row.Add(...
    Next             
    dict.Add(...
Next
于 2012-04-17T13:52:41.370 に答える