Мне кажется, что вы выполняете копирование только для одной строки в вашей сетке, что объясняет, почему копируется только одна вещь. Вы начинаете с:
bool Checkbox = ((CheckBox)row.FindControl("CheckBox1")).Checked;
if (Checkbox = true)
{
// Perform copy...
}
Но, насколько я вижу, первая строка относится только к текущему ряду данных. Предположительно, переменная "row" каким-то образом получена из Grid. Является ли код, который вы показываете, частью цикла foreach
?
Если нет, то я представляю, что все, что вам нужно сделать, это зациклить все строки в вашей таблице и выполнить вставку для каждой строки, а не только для одной. Вы можете (и, вероятно, должны) сгруппировать свои записи в одну транзакцию БД, а не писать несколько раз, но это оптимизация производительности и не влияет на функциональность.