C # невозможно редактировать данные в наборе данных - PullRequest
2 голосов
/ 14 августа 2010

Я пытаюсь редактировать данные в наборе данных (изменить значение в столбце в одной строке), который не связан с базой данных.Я гуглил около часа без результатов и без хороших примеров.Надеюсь, кто-нибудь может мне помочь.

В моей таблице (DataTable1) есть следующие столбцы - ThreadID (строка, PK), StatusText (строка).

Я могу выбрать строку в DataGridView и получитьзначение ThreadID.Независимо от того, как я пытался редактировать строку в соответствующем наборе данных, либо ничего не происходит, либо я получаю сообщение об ошибке.Вот что у меня сейчас:

string sThreadID = "";
sThreadID = gridThreads.Rows[gridThreads.CurrentRow.Index].Cells["ID"].Value.ToString();  // gives me a good id, which is in the dataset
DataRow drRow = dataThreads.Tables["DataTable1"].Rows.Find(sThreadID);
drRow["StatusText"] = "Test";

Ошибка, которую я получаю при получении строки (3-я строка): «Ссылка на объект не установлена ​​для экземпляра объекта.».Я не могу создать новый объект DataRow, потому что для него нет открытого конструктора (согласно моим исследованиям).

Я уверен, что мне не хватает чего-то базового, но я не знаком с работой с наборами данных,Что я делаю неправильно?Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 14 августа 2010

Как drRow знает, что такое "statusText"? Возможно, вы получаете только копию ниже, попробуйте выполнить клонирование / копирование, чтобы скопировать также типы данных строки. Просто идея.

0 голосов
/ 14 августа 2010

Случается ли, что dataThreads или Tables["DataTable1"] равны null?

Чтобы создать новую строку, используйте метод NewRow() таблицы данных.

...