簡體   English   中英

如何翻轉數據集並在datagridview中顯示

[英]how to Flip dataset and display in datagridview

我嘗試使用此代碼翻轉數據集以將列顯示為行,但它不起作用:

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button.Click
    Dim ds2 As New DataSet
    Dim dt2 As New DataTable
    Dim com1 As String = "select  col1,col2,col3 from table1"
    ds2 = FlipDataSet(ds2)
    Dim dp As New SqlDataAdapter(com1, conn)
    dp.Fill(dt2)
    DGV_lev1.DataSource = dt2.DefaultView
End Sub

並使用此功能翻轉數據集:

Private Function FlipDataSet(old_DataSet As DataSet) As DataSet

    Dim ds As New DataSet()
    For Each dt As DataTable In old_DataSet.Tables
        Dim table As New DataTable()
        For i As Integer = 0 To dt.Rows.Count
            table.Columns.Add(Convert.ToString(i))
            table.Columns(0).ColumnName = "Fields"
            If i = 0 Then
                Continue For
            Else

                table.Columns(i).ColumnName = "Customer " & i
            End If
        Next
        Dim r As DataRow
        For k As Integer = 0 To dt.Columns.Count - 1
            r = table.NewRow()
            r(0) = dt.Columns(k).ToString()
            For j As Integer = 1 To dt.Rows.Count
                r(j) = dt.Rows(j - 1)(k)
            Next
            table.Rows.Add(r)
        Next
        ds.Tables.Add(table)
    Next
    Return ds
End Function

使datagirdview從此顯示:

在此處輸入圖片說明

對此:

在此處輸入圖片說明

誰能幫我

謝謝

試試這個,它在我做的快速測試中起作用:

Private Function Transpose(ByVal table As DataTable) As DataTable
    Dim flippedTable As New DataTable
    'creates as many columns as rows in source table
    flippedTable.Columns.AddRange(
        table.Select.Select(
            Function(dr) New DataColumn("col" & table.Rows.IndexOf(dr), GetType(Object))
            ).ToArray)
    'iterates columns in source table
    For Each dc As DataColumn In table.Columns
        'get array of values of column in each row and add as new row in target table
        flippedTable.Rows.Add(table.Select.Select(Function(dr) dr(dc)).ToArray)
    Next
    Return flippedTable
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM