我想存储DataGridView
控件的单元格值,但是此变量始终存储空值,无论单元格是否包含值。
var cellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
如果我执行以下操作:
string cellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() ;
它产生错误:
NullRefrenceException未处理。
我在CellEndEdit
,CellValidating
,CellLeave
等各种活动中使用过它,结果却是一样的。我该怎么做才能在hte单元中保存正确的值,包括null(即,如果任何单元格为空)。
答案 0 :(得分:1)
由于您在ToString()
对象上调用null
,因此发生错误。解决方案是首先测试null
,然后在null
进行不同的操作:
var actualCellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
// Choose a default value in case it's null (string.Empty or null)
string cellValue = string.Empty;
// Test the value for null, and if it isn't, call ToString() on it
if (actualCellValue != null) cellValue = actualCellValue.ToString();
编写此逻辑的更简单方法是:
string cellValue = (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null)
: string.Empty // or null, depending on how you want to store null values
? dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();