user2748092, As you found, you cannot add a row to a datbound datagridview. remove the binding, and add each row, calculating the totals as you go, then add the last row as the totals. Perhpas modify the last row color to differentiate the totals row. Another option, preferable in my opinion, is to present the totals near the gridview. Because it is bound, ensure the totals increase/decrease on change.
added code This should help you find your totals. call after binding your datagrid. Rough edit, may require changes.
For Each gvRow as GridViewRow in dataGridView1.Rows
total += double.parse(grvRow.Cells(0).Text
Next
TotalTextBox.Text = total
Using this method, you can loop your results of dt (datatable), and apply each row to the gridview. this is an exmaple to get you started.
Dim row As String() = New String() {"1", "Product 1", "1000"}
DataGridView1.Rows.Add(row)
Try to write the code, then ask questions about the code you have trouble with.