![]() |
|
Модераторы: gambit |
![]()
|
|
| Walker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 363 Регистрация: 23.10.2006 Репутация: нет Всего: 16 |
Доброго времени суток, Уважаемые жители Винграда!
Подскажите, Пожалуйста, ссылку на мануал по работе со связанными таблицами. Имеется - набор связанных таблиц в базе под управлением SQL Server 2005 EE. Требуется - отображение в единой таблице DataGridView избранных столбцов, выборочное обновление, добавление и удаление записей. Пример: В трёх таблицах представлена структура сотрудников предприятия с их иерархической зависимостью (Дерево). Первая таблица - список сотрудников: ИД, имя, ИД должности. Вторая таблица - список утверждённых должностей. Фиксирована, изменению в текущем контексте не подлежит: ИД должности, Название должности Третья таблица - список узлов дерева. Идентификаторы первой таблицы: ИД начальника, ИД подчинённого. Требуется отобразить: ИД (нередакт), имя, должность, ИД начальника Требуется модифицировать: имя, должность, подчинение (ИД начальника, меняется также через TreeView) - Update Insert, Delete - записи в первой и третьей таблицах по связи, вторая не трогается. Вижу варианты: 1) В DataSet одна сводная таблица, требуемого мне вида, представляющая собой результат запроса к базе. Её можно махом кинуть на DataGridView, но проблемы с модификацией записей. 2) В DataSet набор таблиц. Проблема с отображением. 3) В DataSet набор таблиц и одна сводная, связаны алгоритмами поиска. Одна для DataGridView, остальные для базы. Решение "в лоб", верным не представляется. Собственные домыслы исчерпались, требуется документация. Как решается подобная задача ADO.net-way? Спасибо! Это сообщение отредактировал(а) Walker - 26.5.2008, 14:46 -------------------- "От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..." |
|||
|
||||
| Varenij |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
а почему нельзя поле ИД начальника добавить прям во вторую таблицу?
|
|||
|
||||
| Walker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 363 Регистрация: 23.10.2006 Репутация: нет Всего: 16 |
Ага, для исключения разночтений внёс поправку. Во второй таблице имеется ввиду идентификатор должности.
ЗЫ. Пример представлен в качестве модели ситуации и нужен только для понимания концепции решения. Реальная задача выглядит объёмнее. Это сообщение отредактировал(а) Walker - 26.5.2008, 14:59 -------------------- "От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..." |
|||
|
||||
| vretsky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
какая СУБД?
|
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
vretsky,
-------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| vretsky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
пардон устал, тогда как вариант выводим в грид вью из трех таблиц, а в датаАдаптере insert, update и delete коммандах вызываем сторед процедуры с параметрами, которые изменяют данные в трех таблицах. тогда рекомендую отображать для модификации помимо должности ID должности
|
|||
|
||||
| Chef |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 7.12.2007 Где: РК Павлодар Репутация: нет Всего: нет |
Я мож ошибаюсь, но я бы выборку из всех, в ГридВиев.... А с остальными прямым SQL...
У меня такая проблема была, но база маленькая была, и я связи не делаля в Акцессе... С ключами работал в уме так сказать...... --------------------
Разговоры об IT |
|||
|
||||
| vretsky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
да с прямым SQL все понятно, только как будет выглядеть команда удалить в таблице1 что то , и что то, что ей соответствует в таблице3?
delete from table1 where IDсотрудника=@param1 go delete from table3 where where IDсотрудника=@param1 тут и наступает загвоздка: с GO студия SQL команды не понимает. выход -> простинькая хранимка которая принимает этот параметр @param1 и в теле делает что хошь, либо посредством тригеров организовать каскадное удаление, но это помоему сложнее. а по поводу выборки так я и пишу: создаем представление хоть на стороне сервера хоть в приложении select tabl1.ID, table1.Name, table2.Dolжnost.... from table1 какойто там джоин......... и выводим в грид. в датаадаптере пишим чтото типа: SqlDataAdapter1.DeleteCommand="EXEC PROCEDURA1 @PARAM1"; и заработает как миленькая! p.s. при чем тут Access???? |
|||
|
||||
| informatik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 4.11.2007 Репутация: 1 Всего: 6 |
Мысль правильная но не в ту сторону... ID начальника - это атрибут сотрудника а не должности.. Если думать так то тогда уж добавлять ID начальника в первую таблицу --------------------
namespace informatik |
|||
|
||||
| Chef |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 7.12.2007 Где: РК Павлодар Репутация: нет Всего: нет |
У тебя есть конечный запрос(твоя сводная таблица), по мимо текстовых данных, в запрос ты отправляешь, и все свои ключи.... НО... в гриде делаешь их невидимыми.... Ну а дальше дело твоей логики.....
Я так делал... Это сообщение отредактировал(а) Chef - 27.5.2008, 06:03 --------------------
Разговоры об IT |
||||
|
|||||
| Varenij |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 21.3.2007 Репутация: нет Всего: нет |
||||
|
||||
| 4u4a |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 18.3.2008 Репутация: нет Всего: нет |
не стал создавать новую тему.
есть 3 таблицы на картинке показана связь между ними.надо при отображении в DataGridView таблицы reis,чтобы вместо idM было "nameCity - namecity" для соответствующих idCity1 и idCity2. Присоединённый файл ( Кол-во скачиваний: 6 )
db.gif 12,21 Kb |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |