> Как научить DGV формировать нужный мне запрос?
Сам грид ничего формировать не умеет.
В .NET вообще нет ничего подобного, НАСТОЛЬКО высокоуровневого.
Вам надо самим получать выбранную строку грида, затем значения из ее ячеек и, наконец, составлять SQL-запрос.
Причем, выбранная строка - это может быть как dataGridView1.CurrentRow, так и dataGridView1.SelectedRows (смотря где именно кликнет юзер), поэтому нужно реализовать оба варианта, с проверками на null.
Вариант с dataGridView1.CurrentRow:
MessageBox.Show(dataGridView1.CurrentRow.Cells[0].Value.ToString()); // Cells[0] - первый столбец
Вариант с dataGridView1.SelectedRows:
MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()); // Cells[0] - первый столбец