C # DataTable - элементы строки становятся нулевыми - PullRequest
0 голосов
/ 10 марта 2011

У меня самая странная ошибка - мое приложение выполняет код, который приводит к добавлению 10 строк результатов в DataTable, который затем отображается на Ultragrid.
После запуска ~ 20 происходит следующий сценарий:
1. Первая строка добавляется в таблицу данных:
DataRow drNew = dtResults.NewRow();
- заполняя его значениями -
dtResults.Rows.Add(drNew);
Строка не нулевая, так как у меня есть точка останова после проверки этого: if(drNew.IsNull(0)).
2. Вторая строка добавляется таким же образом, но после добавления верно следующее if:
if(dtResults.Rows[0].IsNull(0)).

Есть идеи, как это может произойти?

Большое спасибо.

Редактировать - изменил название, чтобы быть более точным, спасибо.

Редактировать 2:

Я пытался перехватить события RowChanging и RowDeleting и проверить, нет ли внутри них
dtResults.Rows[0].IsNull(0) или e.Row.IsNull(0), но я не могу поймать их в тот момент, когда первая строка меняет свое содержимое со значений на нули.

1 Ответ

3 голосов
/ 10 марта 2011

drNew.IsNull(0) не проверяет, является ли строка нулевым, проверяет, являются ли данные в первом столбце строки нулевыми.(аналогично, drNew.IsNull(1) будет проверять второй столбец).

Обратите внимание, что вы тестируете drNew.IsNull(0), а затем dtResults.Rows[0].IsNull(0).Они могут не относиться к одним и тем же вещам - drNew - это строка, которую вы добавляете, а Rows[0] - это первая строка в таблице.Я думаю, что если к DefaultView объекта данных применена сортировка, то Row[0] не обязательно будет первым, который вы добавили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...