Dibs,
I was curious if I could do it.
It does, however don't ask what I made from it, maybe somebody has a much
more simple method.
\\\\Needs a datagrid on a form to test.
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
///
I hope this helps,
Cor