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