If you bind a DataTable to a DataGridView and then sort the grid, it has exactly zero effect on the DataTable. What is affected is the DataView associated with the DataTable via its DefaultView property. If you loop through the DefaultView rather then the Rows, you'll see that the DataRowView objects it contains will be in the same order as in the grid. That's no surprise given that the DefaultView is always where the data in a bound grid comes from.