1 Previous Next 

DataTable: Change order of columns (Net 1.x)


Changing the order of columns in a DataTable is in Net1.1 almost impossible.

Therefore it is better not to do it, but by instance use in Datagrid Styles to set the order.

However, if you use a XML DataSet as file, you often want to change that order, this sample
makes that possible.

To run this sample you need only a form with on that a DataGrid 

Private Sub Form1_Load(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dt As DataTable = CreateTables()
        Dim dtAr(dt.Columns.Count - 1) As DataColumn
        Dim dtFake As DataTable = dt.Clone
        For i As Integer = dtFake.Columns.Count - 1 To 0 Step -1
            dtAr(i) = dtFake.Columns(i)
            dtFake.Columns.RemoveAt(i)
        Next
        Dim dtNew As New DataTable
        dtNew.Columns.Add(dtAr(1))
        dtNew.Columns.Add(dtAr(0))
        For i As Integer = 0 To dt.Rows.Count - 1
            dtNew.Rows.Add(dtNew.NewRow)
            For y As Integer = 0 To dtNew.Columns.Count - 1
                dtNew.Rows(i)(dtNew.Columns(y)) = _
                dt.Rows(i)(dtNew.Columns(y).ColumnName)
            Next
        Next
        DataGrid1.DataSource = dtNew.DefaultView
    End Sub
'sample datatable
    Private Function CreateTables() As DataTable
        Dim dt As New DataTable("Persons")
        dt.Columns.Add("Name")
        dt.Columns.Add("USA", GetType(System.Boolean))
        dt.LoadDataRow(New Object() {"Ken Tucker", True}, True)
        dt.LoadDataRow(New Object() {"Cor Ligthert", False}, True)
        Return dt
    End Function



1 Previous Next