If your DataGridView's
DataSource property[
^] is bound with
DataTable
, you can sort data this way:
Dim dt As DataTable = DirectCast(DataGridView1.DataSource, DataTable)
Dim result = dt.AsEnumerable().OrderBy(Function(x) Convert.ToInt32(x.Field(Of String)("id")))
dt = result.CopyToDataTable()
DataGridView1.DataSource = dt
For further details, please see:
Sorting and Filtering Data | Microsoft Docs[
^]
How to: Bind Data to the Windows Forms DataGridView Control | Microsoft Docs[
^]
DirectCast Operator (Visual Basic) | Microsoft Docs[
^]
In case when your
DataGridView
is not binded with any data source, you can sort
DataGridView
rows via Linq query.
Dim sortedDGVRows = DataGridView1.Rows. _
OfType(Of DataGridViewRow)(). _
OrderBy(Function(r) r.Cells("id"))
DataGridView1.Rows = sortedDgvRows