It may vary depending upon the DataSource of your GridView.
Try:
DataTable dt = (DataTable)GridView1.DataSource;
DataView dv = (DataView)GridView1.DataSource;
If you want to make some changes while porting the data, you have to loop through. But, you cannot convert GridViewRow to DataRow. You have to manually create columns first, then loop through all the rows. Within this loop, you would need to loop through all the columns of the row and copy it to the DataRow that you are creating.
DataTable dt = new DataTable();
dt.Columns.Add();
foreach(GridViewRow gvr in GridView1.Rows)
{
DataRow dr = dt.NewRow();
for(int i = 0; i < gvr.Rows.Count; ++i)
{
dr[i] = gvr.Cells[i].Text;
}
}