![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
shell14 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.5.2006 Репутация: нет Всего: нет |
Суть проблемы: таблица их БД отображается с помощью DataGridView, хочу чтобы при добавлении новой строки или изменении каких то данных, после нажатия на кнопку сохранить, вносились изменения в БД.
Есть решение, которого я хочу добиться (см картинку), его генерит студия 2005, при переносе таблицы их БД на форму. Но там слишком много всего (она полностью изучает БД и генерит все связи, очень много и громоздко). Хочеться найти хороший мануал по DataGridView и привязке данных. Никто не подскажет? Просто не могу понять, решать вопрос именно о привязке данных? или может быть проще получить изменения сделанные в DataGridView и просто написать обработчик для внесения изменений в БД? Но хотелось бы чтобы работало именно как в примере. Как этого можно добиться? Еще может кто подскажет грамотное решение, как отобразиь в DataGridView двумерный массив? не хочеться класс писать, потому что просто массив даблов. Присоединённый файл ( Кол-во скачиваний: 24 ) ![]() |
|||
|
||||
Papirus |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: -1 Всего: 1 |
У DataGridView есть свойство DataSource, которому можно назначить таблицу. Примерно так:
Если надо на C# могу и в этом виде (просто VB привычнее) ![]() Добавлено через 9 минут и 9 секунд Можно далее действовать разными способам - создать датаадаптер и прописать свой код обновления данных - получать в отдельную таблицу изменения и обрабатывать построчно. Если tbl объявлена на уровне модуля, то
|
||||
|
|||||
shell14 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.5.2006 Репутация: нет Всего: нет |
Ну да про DataSource я в курсе. Я делал примерно также, только брал DataSet, и заполнял его через SqlDataAdapter
Потом этот датасет подсовываю DataGridView.DataSource и он все отображает. А вот можно про адаптер поподрообнее? Т.е. все изменения получать через него? Его надо как то привязывать? Или я вообще не в ту область лезу? так понимаю что можно не использовать привязку данных напрямую, а просто получать изменения и самому их обрабатывать? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Адаптер - только для получения датасета из БД или применения изменений датасета на базу данных. Если в приложении надо получить изменения, произошедшие с набором данных - дёргаем dataSet.GetChanges().
-------------------- ![]() |
|||
|
||||
darkness |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 5.8.2006 Где: Москва Репутация: нет Всего: 1 |
По сабжу.
поправьте где я ошибаюсь: имеем примерно след код:
т.к. DataSet GridView это классы, представляющие из себя ссылочные типы следовательно gD1.DataSource ссылается туда же что ds.Tables["Studi"].... и любое изменение пользователем данных на Гриде отражается и на самой таблице... Щёлкаем кнопку "сохранить" для вступления изменений в силу:
загвоздка у меня в том, как обновить саму БД.... Предположим мы исправили две строки и одну добавили, как получить доступ именно к тем элементам которые были изменены (Добавлены), чтобы уже на основании этого форимровать запросы UPDATE INSERT ??? Вообщем немного запутался... Это сообщение отредактировал(а) darkness - 7.5.2007, 06:43 --------------------
Вина каких стран Вы предпочитаете в это время суток? (Булгаков. "Мастер и Маргарита") |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Полученный из GetChanges датасет отдаём адаптеру в метод Update:
-------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |