VB.NET – Générer / Créer DataTable depuis un DataGridView avec les champs visibles + leurs ordres

 »’ <summary>
 »’ Retourne un DataTable rempli avec les colonnes visible d’un datagridview.
 »’ </summary>
 »’ <param name= »dgv »>DataGriView source</param>
 »’ <returns></returns>
Public Function genererDataTableDepuisDataGridView(dgv As DataGridView) As DataTable
Dim dt = New DataTable()
Dim a As Integer = 0
‘ Crée les colonnes du DataTable à retourner avec les colonnes visibles du DataGridView.
For a = 0 To dgv.ColumnCount Step 1
For Each col As DataGridViewColumn In dgv.Columns
If a = col.DisplayIndex Then
If col.Visible = True Then
dt.Columns.Add(col.Name)
End If
End If
Next
Next
‘ crée un object d’un longueur égale au dataTable que l’on viens de créer.
Dim Values As Object() = New Object(dt.Columns.Count – 1) {}
‘ pour chaque ligne du dataGridView et pour chaque colonne on rempli la valeur.
For Each row As DataGridViewRow In dgv.Rows
Dim i As Integer = 0
For Each dc As DataColumn In dt.Columns
If dgv.Columns(row.Cells(dc.ColumnName).ColumnIndex).Visible = True Then
Values(i) = row.Cells(dgv.Columns(dc.ColumnName).Index).Value
i += 1
End If
Next
dt.Rows.Add(Values)
Next
Return dt
End Function

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s