You could actually do this in a much simpler way; you could simply loop through the DataGridView's rows and iterate an integer variable every time you find a row which value for the field in question is equivalent to 1 (or larger than zero, for clarity) (long as you have set said column's true and false values to 1 and 0 respectively). Then, if that integer is equal to zero, show your message - or else update your values.
int checkedRowTotal = 0;
foreach (DataGridViewRow dataRow in DataGridView1.Rows) {
int checkedValue = dataRow.Cells["chkbox"].Value;
if (checkedValue < 0) checkedRowTotal += 1;
};
if (checkedRowTotal == 0) {
MessageBox.Instance.ShowMessageBox("Please Select at least one checkbox");
return;
} else {
Update();
};
I have not tested this code so you'll need to debug it, but I think that would solve your issue if I understand it correctly. Also keep in mind that in order for the checkbox value to actually change, you're going to need to update your data source in the CellValueChanged event of the DataGridView - could I see the code for that?