#c# #.net #exception-handling #devexpress
#c# #.net #обработка исключений #devexpress
Вопрос:
Я пытаюсь выполнить следующий код. Моя сетка содержит строку. Но возникает исключение NullReference. Не могли бы вы, пожалуйста, рассказать мне о проблеме с моим кодом?
tblItemCode = gridView1.GetRowCellValue(0, gridView1.Columns["Item Code"]).ToString();
Комментарии:
1.
gridView1
, илиgridView1.Columns["Item Code"]
или возвращаемое значение вызоваGetRowCellValue(..)
равно null . Если это последнее, то NPE не вызываетсяToString()
… Слишком много причин для сбоя без дополнительного контекста. Используйте отладчик.
Ответ №1:
Я бы проверил, есть ли GridView
строки / выбранные строки, и только после этого выполнил назначение:
if (gridView1.RowCount > 0)
{
if (gridView1.GetSelectedRows().Count() > 0) //optional check
{
string tblItemCode = gridView1.GetRowCellValue(0, gridView1.Columns["Item Code"]).ToString();
}
}
Ответ №2:
Два предложения…
- Отбросьте toString() в конце и поместите значение в объект (в режиме отладки).
- Если он все еще выдает ошибку, то это намекает мне, что столбец «Код элемента» не существует. Я предполагаю, что на самом деле он назван чем-то похожим, но не точным, возможно, «ItemCode». Если вы сопоставляете список, это вероятно.
Введите какой-нибудь простой отладочный код, чтобы увидеть, каковы фактические имена столбцов:
foreach (var col in grdPartMasterView.Columns)
{
// Put a break point here and
// take a peek at the properties of "col"
}