Я делаю это таким образом, не используя источник данных, поскольку мне пришлось настраивать выходные данные ячейки.
// for inserts
foreach (var item in data)
{
DataGridViewRow newRow = new DataGridViewRow();
newRow.CreateCells(myDataGridView,
your,
data,
for,
each,
cell,
here);
myDataGridView.Rows.Add(newRow);
}
// for updates
myDataGridView.Rows[rowIndex]
.SetValues(cell,data,you,wish,to,change,here);
Для удаления я не столкнулся с проблемами при использовании:
myDataGridView.Rows.RemoveAt(rowIndex);
myDataGridView.Refresh();
должно работать для обновления.