Сначала вы, вероятно, захотите изменить SelectionMode вашего DataGridView на FullRowSelect. В противном случае пользователи, скорее всего, будут выбирать ячейки, а не строки, и приведенный ниже код не будет работать. [Хотя вы можете сделать что-то подобное с Selected Cells]
Тогда вам нужно начать с кода, подобного следующему:
foreach (DataGridViewRow r in dataGridView1.SelectedRows)
{
//Code to add selected row to new datagrid.
//Important to note that dataGridView2.Rows.Add(r) will not work
//because each row can only belong to one data grid. You'll have
//to create a new Row with the same info for an exact copy
}
Лично я бы вернул bookid в виде скрытого столбца, чтобы он был доступен для обработки корзины пользователя.
Если вы хотите переместить элементы из одного DataGridViewRow в другой [чтобы они могли существовать только в одном списке за один раз], вы можете сделать это.
foreach (DataGridViewRow r in dataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(r);
dataGridView2.Rows.Add(r);
}