2012-05-09 4 views
2

Мне нужен пример кода или проекта с одной формой DataGridView и одним DataTable, поэтому я могу редактировать ячейки DataGridView, а затем все изменения автоматически включаются в DataTable. Также как я могу создать DataTable с теми же столбцами с DataGridView другим способом, что вручную?C# Заменить изменения в DataGridView для DataTable

Я попытался создать DataGridView и DataTable с одинаковыми столбцами вручную и затем установить DataGridView.DataSource = DataTable, , но данные, сохраненные в таблице, являются нулевой (во всяком случае количество новых строк правильно, но значения являются недействительными) ,

Пробовал в google - все образцы и вопросы касаются savind в DataBase, но мне не нужна БД, мне просто нужна простая привязка DataTable и DataGridView.

Спасибо!

ответ

4

Там нет никакого способа, чтобы автоматически создать таблицу из DataGridView столбцов (EDIT Чтобы уточнить это: Есть способы автоматического создания структуры базы данных - ORM будет хорошо ключевое слово здесь - но я предполагаю, что это не то, что вам нужно) , В другом направлении хорошо работает: создайте таблицу и назначьте ее в качестве источника данных DataGridView. Затем сетка должна отображать соответствующие столбцы.

«Сохранение» значений в таблице данных работает только в том случае, если вы указали «столбцы», в каком поле базовой таблицы они относятся. То есть: вам нужно создать столбцы таблицы (у него есть имя), а при создании столбца DataGridView вам необходимо присвоить имя столбца свойству DataPropertyName этого столбца.

Самый простой способ для вас: создать типизированный набор данных (используйте диалоговое окно «Добавить в проект», чтобы добавить новый «DataSet»), вручную создайте таблицу в дизайнере набора данных, перетащите экземпляр вашего набора данных в форму и назначьте это как источник данных вашему DataGridView. Все остальное должно появиться автоматически.

+0

Звучит неплохо, постарается сделать это, надеюсь, что это сработает, спасибо! – Zura

-2

Преобразование DatagridView Для DataTable.
В C# .NET:

DataTable dt = ((DataView)this.dataGridView1.DataSource).Table; 

VB.NET:

Dim dt As DataTable = CType(Me.dataGridView1.DataSource,DataView).Table 
1

Если DataTable устанавливается в качестве DataSource для DataGridView, содержание в DataGridView будет отражать данные в DataTable и наоборот. Поэтому, если вы вносите изменения в dataGridView, эти изменения уже находятся в DataTable.