Непосредственное манипулирование DataSet - PullRequest
0 голосов
/ 19 декабря 2009

У меня есть легкая база данных. Функционально, я хотел бы читать и записывать таблицы на диск (плюс, возможно, некоторую другую информацию в будущем).

Я решил использовать объект DataSet в паре с элементом управления DataGridView для ввода-вывода. Объект DataSet может сериализоваться на диск и обратно через функции чтения / записи дескриптора XML.

Однако не представляется очевидным очевидный способ добавить информацию в элемент управления DataView и обновить объект DataSet. Помимо прочего, DataGridView не добавит мне строку во время выполнения и не позволит мне программно запустить метод addrow.

Очевидно, я что-то упускаю.

Чего мне не хватает?


Это было предложено:

dataSet1.Tables["mytable"].Rows.Add();

Но System.Data.DataRow не разрешает прямое построение, и я хочу добавить пустую строку для заполнения DataGridView?

edit2: я тупой. Есть новая функция строки.

Хм. Мне интересно, если это просто неправильный подход.

1 Ответ

1 голос
/ 19 декабря 2009

Не изменяйте содержимое DataGridView программно, вместо этого изменяйте сам DataSet. Он автоматически обновит DataGridView, если он привязан к данным DataSet (используя свойства DataSource и DataMember). Изменения, сделанные пользователем в DataGridView, будут автоматически отражены в DataSet.


UPDATE

dataSet1.Tables["mytable"].Rows.Add();

Но System.Data.DataRow не разрешает прямое построение, и я хочу добавить пустую строку для заполнения DataGridView?

Вы можете построить DataRow вручную:

DataRow row = dataSet1.Tables["mytable"].NewRow();
row["column1"] = value1;
row["column2"] = value2;
...
dataSet1.Tables["mytable"].Rows.Add(row);

Если вы просто хотите пустую строку, просто не инициализируйте поля ...

Если у вас BindingSource между DataSet и DataGridView, позвоните AddNew на BindingSource. Это добавит пустую строку. Вы также можете использовать элемент управления BindingNavigator, который обрабатывает вызовы методов BindingSource.

...