Исключение нулевой ссылки на DataGridView - PullRequest
0 голосов
/ 25 октября 2011

У меня есть веб-сервис, который заполняет мой DataGridView с помощью нескольких веб-методов.

Без этого кода все работает отлично, но мне нужно, чтобы изображение менялось в зависимости от выбранной строки, а имя изображения будет находиться в статической колонке, которая не изменится.

Я пытаюсь в своем веб-методе отправить имя картинки, равное picture1.jpg.

В приложении Windows я использую этот код:

int i;
i = memdataGV.SelectedCells[0].RowIndex;
var pictext = memdataGV.Rows[i].Cells[5].Value.ToString();
pictureBox1.ImageLocation = "C:\\Pictures\\" + pictext;

При первом заполнении DataGridView все работает нормально, но когда я нажимаю на одно из событий моей кнопки, оно выдает исключение в следующей строке:

var pictext = memdataGV.Rows[i].Cells[5].Value.ToString();

Исключение NullReferenceException не обработано

Я попытался отладить код и добавил оператор if в начало, но, похоже, не исправил его.

Ответы [ 2 ]

2 голосов
/ 25 октября 2011

Три возможности:

  1. i имеет неверное значение (например, -1)
  2. Value в ячейках [5] равно NULL, поэтому при вызове ToString() взрывается.
  3. Cells[5] не существует. И.Е. может быть, это другой индекс, например, 4. Помните, индекс начинается с нуля.

Исходя из вашего комментария, измените строку на:

var pictext = memdataGV.Rows[i].Cells[5].Value==null?string.empty:memdataGV.Rows[i].Cells[5].V‌​alue.ToString();
0 голосов
/ 26 октября 2011

По какой-то причине понял, что индекс 5 возвращал ноль, и в ячейке было значение.Поэтому я сделал код, чтобы получить значение по имени столбца, который нашел значение и работает

 string pictext = Convert.ToString(selectedRow.Cells["PHOTOID"].Value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...