2017-04-24 1 views
0

DataGridView 컨트롤의 셀 값을 저장하려고하지만 셀에 값이 있는지 여부에 관계없이이 변수는 항상 null 값을 저장합니다.datagridview에 항상 null 값을 저장하는 변수

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

내가 할 경우 다음

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

는 오류 발생 : 나는 CellEndEdit, CellValidating, CellLeave 같은 다양한 이벤트에 사용

NullRefrenceException was unhandled .

,하지만 결과는이다 같은. null도 포함하여 hte 셀에 올바른 값을 저장하려면 어떻게해야합니까 (즉, 셀이 비어있는 경우).

답변

1

null 개체에서 ToString()을 호출하기 때문에 오류가 발생했습니다. 이 솔루션은 처음 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(); 
관련 문제