【发布时间】:2010-01-24 20:04:01
【问题描述】:
我在这里遇到了一个奇怪的问题。
我有一个由与数据库的连接填充的 3 列数据网格。到目前为止一切顺利。
我有一个额外的列,复选框类型。我需要获得对它执行批量操作的价值。关键是:
当所有单元格都被选中时,它工作正常。但是当用户选择不是第一个的任何单元格时,软件会给我一个对象引用异常。
这里是代码
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]);
}
}
}
我追踪到 if-test 的失败,抛出异常,因为单元格的值被读取为 null。
有什么想法吗?
谢谢
【问题讨论】:
-
哪一行抛出异常?
-
只是索引的一个例子。不是真正的单元格名称或索引。有趣的是,我已经解决了这个问题。而不是像这样转换值: (Boolean)row.Cells[i].Value 我使用 Convert.ToBoolean(row.Cells[i]) 并且工作正常。谢谢你的帮助! :D
-
您的问题可能是
row.Cells[wantedCell].Value是null,您试图将其转换为bool。 (不可为空的类型) -
@SLaks 关闭。该值为 DbNull.Value
标签: c# datagridview