Когда значение равно нулю, получая ошибку даже при проверке данных?
У меня есть следующая часть кода:
If IsNothing(strCellValue = tabledgv.Rows(newNum).Cells(1).Value.ToString()) Then datetxt.Text = "N/A" Else datetxt.Text = strCellValue End If
Как вы можете видеть, у меня нет ничего, так что он должен проверить это правильно? В любом случае когда я запускаю его я все равно получаю ошибку:
System.NullReferenceException: 'Object reference not set to an instance of an object.' System.Windows.Forms.DataGridViewCell.Value.get returned Nothing.
Что я уже пробовал:
Я пробовал удалить все это. Я также попытался использовать isDBNull, так как это нулевое значение в SQL, но исправил это с помощью .tostring в конце.
0x01AA
tabledgv.Rows(newNum).Cells(1)
: Похоже, что строка/Col не существует.
Cody O'Meara
Спасибо за ответ. Правильный. Внутри ячейки нет никакой ценности, поэтому я пытаюсь заставить ее сказать "N/A", когда в ячейке ничего нет.
0x01AA
Я думаю, вы неправильно меня поняли. Я думаю, что проблема заключается не только в этом tabledgv.Rows(newNum)
или тогда клетка не существует. Это вы не можете проверить, получив доступ tabledgv.Rows(newNum).Cells(1).Value
. Перед этим вам нужно убедиться, что запрошенная строка, а также запрошенный col действительно существуют.
Cody O'Meara
Наверное, я что-то упускаю. У меня есть это "totalRows = tabledgv.Rows.GetRowCount(DataGridViewElementStates.Visible) - 1" для получения общего количества строк. Он действительно работает, так как у меня есть метка, которая отображается на нагрузке, к которой относится правильное количество. У меня также есть эта проверка"If newNum > totalRows Then newNum = 1 End If", чтобы сбросить обратно в первую строку, в которой есть 2 строки с данными. Это происходит при попытке второго ряда. Это происходит перед проверкой, чтобы увидеть, равно ли strCellValue nothing.
0x01AA
почему? -1
в totalRows = tabledgv.Rows.GetRowCount(DataGridViewElementStates.Visible) - 1
?