0

DTNameは、DataTable以下のコードの行を返すものです...ループを0からカウントまで繰り返すと。最初の行のデータのみが表示されます。

結果に表示されるデータテーブルのすべての行を取得するにはどうすればよいですか?

DTName = GetClientNames()

   If Not DTName Is Nothing Then

      For i = 0 to DTName.Rows.count

         strName = DTName.Rows(i).Item("Client Name").Tostring()

      Next i

   End if
4

2 に答える 2

3

For i = 0 to DTName.Rows.countの値がに等しい場合、最終的にIndexOutOfRangeExceptionエラーがスローされます。制限は。iDTName.Rows.countDTName.Rows.count - 1

すべてのデータ行からすべての値を取得するには、それらをList:に格納します。

    Dim strName As New List(Of String)

    For i = 0 to DTName.Rows.count - 1

       strName.Add(DTName.Rows(i)("Client Name").Tostring())

    Next i

または、次のように使用できますForeach

    For Each DR As DataRow In DTName.Rows

       strName.Add(DR("Client Name").Tostring())

    Next

また、次の場合は冗長チェックを削除することをお勧めしますDTName.Rows.Count > 0

編集:strNameとして宣言し、stringそれに行の値を追加することができます:

    For i = 0 to DTName.Rows.count - 1

        strName &= (DTName.Rows(i)("Client Name").Tostring() & ",")

    Next i

    Response.Write(strName)
于 2013-01-25T21:24:06.323 に答える
0

ColumnNameカラムの実際を確認するには、ダブルします。

For Each item As DataRow In dataTable.Rows
    strName = item("Client Name").ToString()
    Console.WriteLine(strName)
Next
于 2013-01-25T22:03:10.867 に答える