DataGridView & Linq - PullRequest
       7

DataGridView & Linq

1 голос
/ 28 апреля 2011

Я пытаюсь использовать следующий запрос linq для моего datagridview:

var count = dgv_Checks.Rows.Cast<DataGridViewRow>()
                      .Count(row => row.Cells["SubmitToAch"]
                      .Value.ToString() == "True");

Я разрешаю добавления к этому сетевому представлению, так что внизу есть «добавить строку». Каждый раз, когда он достигает этой строки добавления, он выдает мне «Ссылка на объект не установлена ​​на экземпляр объекта.», Не только в этом запросе, но и в других.

Есть ли способ обработки запросов linq или таблицы данных, и он не рассматривает эту строку добавления?

Кроме того, как мне исправить приведенный выше запрос, чтобы пропустить эту строку?

спасибо!

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Попробуйте добавить нулевую проверку?

var count = dgv_Checks.Rows.Cast<DataGridViewRow>()
            .Count(row => row.Cells["SubmitToAch"] != null && row.Cells["SubmitToAch"].Value.ToString() == "True");
0 голосов
/ 13 марта 2014

Более старый пост, но я чувствую себя обязанным ответить, так как та же самая проблема беспокоила меня ранее сегодня.Решение, предложенное принятым ответом (для проверки на нулевое значение), все еще приводит к исключению ссылки на объект для меня, но проверка IsNewRow правильно пропустила добавленную строку:

var count = dgv_Checks.Rows.Cast<DataGridViewRow>()
            .Count(row => !row.IsNewRow && row.Cells["SubmitToAch"].Value.ToString() == "True");
0 голосов
/ 13 октября 2011

должно быть

row.Cells["SubmitToAch"].Value != null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...