Исключение для функции GetRowCellValue в DevExpress

#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:

Два предложения…

  1. Отбросьте toString() в конце и поместите значение в объект (в режиме отладки).
  2. Если он все еще выдает ошибку, то это намекает мне, что столбец «Код элемента» не существует. Я предполагаю, что на самом деле он назван чем-то похожим, но не точным, возможно, «ItemCode». Если вы сопоставляете список, это вероятно.

Введите какой-нибудь простой отладочный код, чтобы увидеть, каковы фактические имена столбцов:

         foreach (var col in grdPartMasterView.Columns)
        {
            // Put a break point here and
            // take a peek at the properties of "col"
        }