You are setting the datasource of your datagridview after each individual line that you have added see where you have
dt.Rows.Add(newRow)
DataGridView1.DataSource = dt
Don't do that. Completely fill your datatable first,
then assign it to the DataGridView.Datasource e.g. at
Next
DataGridView1.DataSource = dt
Catch ex As Exception
.. etc
You need to understand how to debug your code - things like this become clearer when you can see what is going on
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[
^]