![]() |
|
Модераторы: gambit |
![]()
|
|
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Доброго, всем, времени суток!
Скажите как правильно связывать колонки таблиц в DataSet с помощю DataRelation. Потратил на это пол дня, но ничего хорошего из этого не получилось На форме находится два DataGridView. И мне нужно, что бы все изменения в одном из них, отображались во втором. Вот мой код, чего здесь не хватает?
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Две ошибки:
1) в обеих таблицах должен быть назначен Primary Key, и связь между таблицами должна быть по полю, которое в родительской таблице является primary key 2) назначать DataSource для DataGridView нужно не на датасет (!) а на BindingSource, у которого в свою очередь задаётся DataSource и DataMember на наш датасет и таблицу Добавлено @ 20:25 З.Ы. пример из MSDN (в проекте только 1 исходник - Form1.cs, надо убрать Program.cs и Form1.Designer.cs/Form1.resx):
-------------------- ![]() |
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Не, это совсем не то что мене нужно. Но, вроде бы, у меня получилось сделать примерно, то что надо. Только теперь проблема в том, что хочеться реализовать это не используя события RowChanged, а просто отделаться применением DataRelation.
И ещё я так и не понял, зачем здесь использовать BindingSource. Всё хорошо работает и без него. Да и PrimaryKey никак не влияет на работоспособность моего кода. Для чего нужны эти фишки? А вот, собственно и то, что у меня получилось. Конечно, это ещё черновой вариант, но всё же:
Это сообщение отредактировал(а) Red Wind - 20.8.2006, 16:15 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Это нужно только для того, чтобы конкретный контрол DataGridView отслеживал изменения по связанным таблицам. В .NET Framework 1.1 было достаточно замапить DataGrid на связанные таблицы, а в 2.0 уже нужен BindingSource. -------------------- ![]() |
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Спасибо, тогда ясно.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |