I'm having a strange issue here.
I have a 3 column datagrid that is filled by a connection with the database. So far so good.
I have an extra column, of checkbox type. I need to get it's value for perfoming a bulk operation on it. Here is the catch:
When all cells are selected, it works fine. But when an user selects any cell that its not the first, software gives me a object reference exception.
Here is the code
public List<String> GetSelected()
{
List<String> selected = new List<String>();
foreach(DataGridViewRow row in datagrid.rows)
{
if ((Boolean)row.Cells[wantedCell].Value == true)
{
selected.Add(row.Cells[anotherCell]);
}
}
}
I tracked down the failure to the if-test, throwing a exception, because the value of the cell is read as null.
Any thougths?
Thanks
try this:
public List<String> GetSelected()
{
List<String> selected = new List<String>();
foreach(DataGridViewRow row in datagrid.Rows)
{
object value = row.Cells[wantedCell].Value;
if (value != null && (Boolean)value)
{
selected.Add(row.Cells[anotherCell]);
}
}
}
This didn't work for me (an exception was thrown converting to a Boolean).
I believe that this does the job:
foreach (DataGridViewRow row in dgv.SelectedRows)
{
bool b = row.Cells[0].Value == DBNull.Value ? false : (bool)row.Cells[0].Value;
...
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With