Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get DataGridView checkbox cell value?

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

like image 892
George Silva Avatar asked Jan 24 '10 20:01

George Silva


2 Answers

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]);
        }
    }
}
like image 184
Alex LE Avatar answered Nov 17 '22 19:11

Alex LE


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;
    ...
 }
like image 1
user3782558 Avatar answered Nov 17 '22 18:11

user3782558