变量始终在datagridview中存储空值

时间:2017-04-24 05:10:18

标签: c# variables datagridview cell

我想存储DataGridView控件的单元格值,但是此变量始终存储空值,无论单元格是否包含值。

var cellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

如果我执行以下操作:

string cellValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() ; 

它产生错误:

  

NullRefrenceException未处理。

我在CellEndEditCellValidatingCellLeave等各种活动中使用过它,结果却是一样的。我该怎么做才能在hte单元中保存正确的值,包括null(即,如果任何单元格为空)。

1 个答案:

答案 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();