1

データテーブルの特定の列から個別の値をすべて取得しようとしています。データテーブルの列名は「Count」です。2240 行あり、「カウント」列に 6 つの異なる値があります。問題は、次のコードを実行すると、6 つの個別の値ではなく行数が返されることです。

Dim counts = (From row In loadedData
Select row.Item("Count")).Distinct()
For Each i In counts
    MsgBox(i)
Next

これを変更して、合計行数を取得するのではなく、6 つの個別の値を取得するにはどうすればよいですか?

4

3 に答える 3

6

これには ToTable(distinct As Boolean, ParamArray columnNames As String()) メソッドを使用できます。

loadedData.DefaultView.ToTable(True, "Count")

これにより、個別のユーザーが返されます。必要に応じて、複数の列名を追加できます。

これがmsdnのドキュメントです。 https://msdn.microsoft.com/en-us/library/wec2b2e6(v=vs.110).aspx

于 2015-09-29T11:39:58.660 に答える
0

必要に応じてこのロジックを適用することもできます。最初に columName でデータテーブルを並べ替えてから、このロジックを適用します

    dtRecords.DefaultView.Sort = "columnName"
    dtRecords = dtRecords.DefaultView.ToTable
    Dim totalRecords As Integer = 0
    Dim thNameStr As String = filter(dtRecords, "columnName", totalRecords )

Public Shared Function filter(ByVal dtRecords As DataTable, ByVal columnName As String, ByRef totalRecords As Integer) As String
            Dim FilterStr As String = ""
            Dim eachTotal As Integer = 0
            totalRecords = 0
            Dim lastName As String = ""
            For rCount = 0 To dtRecords.Rows.Count - 1
                If lastName <> "" And lastName <> dtRecords.Rows(rCount)("" & columnName) Then
                    FilterStr &= lastName & " - [" & eachTotal & "]"
                    eachTotal = 0
                    totalRecords += 1
                End If
                lastName = dtRecords.Rows(rCount)("" & columnName)
                eachTotal += 1
            Next
            FilterStr &= lastName & " - [" & eachTotal & "]"
            totalRecords += 1
            Return FilterStr 
        End Function
于 2014-10-17T05:07:07.393 に答える