object a = dgvProduct.Rows[e.RowIndex].Cells["Nosell"].Value;
                bool b;
                if (a != System.DBNull.Value)
                {
                    try
                       { b = (bool)a; }
                    catch (InvalidCastException)
                                      {return;}
} 
在dgv控件返回的一个表里面做循环判断
在表最后有个空行(添加用的) 
用上面语句 竟然能执行到 b = (bool)a; (循环到最后空行的时候)然后报错
 System.DBNull.Value改用null 就不会执行到  b = (bool)a;何解?