I noticed two errors right away.
Unfortunately VB is not my primary language and I do not have access to an IDE at the moment. You are going to need to work out any errors in syntax on your own.
Problem #1: Don't ever concatenate an SQL command together.
Use Parameterized queries to remove chances of SQL Injection
Fix: Change the WHERE clause
"...where BADGE.ID Like '" & DataGridView1.CurrentRow.Cells(0).Value.ToString & "%'"
"...where BADGE.ID = @BadgeID"
cmd.Parameters.AddWithValue("@BadgeID", DataGridView1.CurrentRow.Cells(0).Value);
Problem #2: Only 1 value retrieved
Fix: Loop through the reader
If reader.HasRows = False Then
MessageBox.Show("Error Message")
Else
While reader.Read()
End While
End If