You only get the last row because that is all your code updates, CurrentRow is the last row selected.
Use a For Each loop to walk the selected rows for example;
For Each dgr as DataGridViewRow in DataGridView1.SelectedRows
Dim st As String = "UPDATE prcpricing SET deal_price = '" & dgr.Cells(3).Value & _
...etc.
Next
If you are using checked rows you may have to walk the entire set of rows checking for checked = true, for an example see
[
^]
Also never concatenate a string to construct an SQL statement, always use parameterised queries.