Рейтинг:
2
Maciej Los
Мое лучшее предположение-это та линия:
sumc1 += Convert.ToInt32(dataGridView1.Rows[x].Cells[7].Value);
вызывает ошибку
'Object reference not set to an instance of an object.'
Вы не можете конвертировать
null
к
integer
Таким образом, вы должны добавить условие, которое будет проверять, является ли ячейка.Значение не равно
null
.
Fadimoh
Спасибо за вашу поддержку,
Тот же вопрос
Я сталкиваюсь с проблемой в этой линии
if (dataGridView1.Rows[x].Cells[6].Value.ToString() == "QP26")
Maciej Los
Как я уже упоминал, сначала вы должны проверить наличие null.
Рейтинг:
1
jrodes
То, что я сделал бы с linq, это что-то вроде:
int sumc1 = 0;
sumc1 = dataGridView1.Rows.Cast<DataGridViewRow>()
.Where(z=>z.Cells[7].Value.ToString() == "QP26")
.Sum(s => Convert.ToInt32(s.Cells[7].Value));
this.label3.Text = sumc1.ToString();
Fadimoh
Спасибо за вашу поддержку,
Тот же вопрос
Я сталкиваюсь с проблемой в этой линии
if (dataGridView1.Rows[x].Cells[6].Value.ToString() == "QP26")
phil.o
Rows.Cast<DataGridViewRow>
вероятно, это бесполезно, так как строки уже выставляют коллекцию DataGridViewRow
.
.Where(r => r.Cells[7].Value != null)
вероятно, это тоже бесполезно, так как предыдущее Where
уже выбраны ячейки с определенным значением, которое не является нулевым, так как оно равно "QP26".
Maciej Los
Ну что ж, есть обязательный зов Cast<DataGridViewRow>()
метод.
Я согласен со второй частью твоего комментария, Фил.
phil.o
Я вижу: DataGridViewRowCollection определяется только для реализации IList, таким образом, приведение. Моя ошибка.
Maciej Los
:большой палец вверх: