Richard is correct, you should not use string concatenation but there is a much better way of doing this.
Firstly; Initialise your datagridview by adding the columns that you require, ensuring that you set the AutoGenerateColumns to false - see below
dgw.DataSource = null
dgw.AutoGenerateColumns = false
Then add in the columns you require, typically you only need DataGridViewTextBoxColumns but by adding them you get to set the data-type and display format which allows you to sort them correctly & set properties like column visibility, widths and headings.
Refer here for MSDN documentation on the DataGridViewTextBoxColumn
Secondly; Load the DataReader results to a DataTable and then bind the DataTable to the DataGridView - refer below;
Dim dataTable as DataTable
dgw.DataSource = dataTable
Third; Re-use the datatable to get the label values you require using an Expression on a datacolumn
Refer here for MSDN documentation on DataColumn.Expression
This will allow you to get rid handling the data row by row & will be much more efficient