There is no need to Fill the Grid and loop that to find empty row.
If you Fill DataGridView using a DataTable then solve the Empty row issue in DataTable onwards...
Try like below...
dataTable = dataTable.Rows.Cast(Of DataRow)().Where(Function(row) Not row.ItemArray.All(Function(field) TypeOf field Is System.DBNull OrElse String.Compare(TryCast(field, String).Trim(), String.Empty) = 0)).CopyToDataTable()
GridView.DataSource = dataTable
It will remove all the empty rows and assign the value to gridview..