Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93

Удаление обновления данных в связанных таблицах

24.10.2012, 11:40. Показов 3629. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня. Помогите пожалуйста от безысходности не знаю что делать. Перелапатил кучу инфы, но так и не нашёл нужно. Проблема следующая есть датасет в нём две таблицы Т1 и Т2, таблицы связаны между собой. При попытке удалить данные из датагрид а потом обновить таблицу,
C#
1
Sql_adapter.Update(data_set, buf_table)
, вылетает исключение: Конфликт инструкции DELETE с ограничением REFERENCE "FK__Event__INN__3D5E1FD2". Конфликт произошел в базе данных "test", таблица "dbo.Event", column 'INN'. Где-то прочитал что нужно изначально обновить Т2 а потом уже Т1, но тогда вылетает ещё одно исключение: Динамическое создание SQL для DeleteCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей. И тут всё стопор что делать хз. помогите пожалуйста. Заранее спс
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2012, 11:40
Ответы с готовыми решениями:

Удаление записей используя dataAdapter в связанных таблицах
Здравствуйте. Удаление из одной таблицы реализую так try { int index =...

FindFirst и удаление данных в связанных таблицах
Есть несколько таблиц, в которых данные пересекаются на фамилии. Удаляю в одной таблице запись, следовательно,хочу удалить все связанные...

Удаление связанных строк в нескольких таблицах
Есть две таблицы: users и details. В users хранятся пользователи (идентификатор и имя), в details - расширенные данные о пользователях...

7
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
24.10.2012, 11:56
Цитата Сообщение от Andrew2 Посмотреть сообщение
Где-то прочитал что нужно изначально обновить Т2 а потом уже Т1
Да, сначала удаляешь дочерние записи, потом родительские. Или, если дочерние надо оставить, то сначала устанавливаешь значение FK (Foreign Key) в этих записях в NULL, а потом уже удаляешь родительскую запись.
Наконец, если есть желание, чтобы при удалении родительской записи дочерние удалялись автоматом, нужно создавать FK с опцией ON DELETE CASCADE
2
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.10.2012, 11:59
Цитата Сообщение от Andrew2 Посмотреть сообщение
И тут всё стопор что делать
Просто во вторую таблицу у тебя выбираются данные, без указания ключа. Сделай так, что бы выборка содержала ключ, и тогда запросы обновления сгенерируются автоматически.
Есть еще вариант прописать в адаптере зависимой таблицы запросы обновления вручную.
0
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
24.10.2012, 12:08  [ТС]
Хорошо тогда делаю так. поле Т2 INN ставлю как первичный ключ и тогда всё норм удаляется и изменяется, но проблема в том что поле INN не может быть первичным ключом так как значение в нём могут повторяться, тогда создаю поле новое поле ID и делаю его первичным ключом, и при обновлении вылетает исключение о нарушение параллелизма
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.10.2012, 12:28
Цитата Сообщение от Andrew2 Посмотреть сообщение
вылетает исключение о нарушение параллелизма
что-то неправильно спроектировал, наугад сказать не могу
1
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
24.10.2012, 12:50  [ТС]
есть первая радость, получается удалить, сделал так: создал в таблице Т2 поле ID первичный ключ и вызвал
C#
1
Sql_adapter.Update(data_set.Tables["Т1"]);
удаляет чисто, но проблема с изменением данных осталась

Добавлено через 56 секунд
вылетает всё таже ошибка Конфликт инструкции UPDATE с ограничением REFERENCE "FK__Event__INN__66603565". Конфликт произошел в базе данных "test", таблица "dbo.Event", column 'INN'.

Добавлено через 1 минуту
не пойму почему, ведь проблема с удалением решена, а была таже ошибка

Добавлено через 11 минут
радость оказалась преждевременной, всё равно вылетает ошибка параллелизма((
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.10.2012, 13:03
Andrew2, ты добавил ID, но связь между таблицами в БД осталась по полю INN, которое по прежнему уникальное ключевое
0
14 / 14 / 3
Регистрация: 21.09.2012
Сообщений: 93
24.10.2012, 14:14  [ТС]
SQL
1
2
3
4
IF object_id('Persons') IS NULL CREATE TABLE Persons(INN INT NOT NULL PRIMARY KEY," +
                                      "FIO NVARCHAR(150), Address NVARCHAR(200), Education NVARCHAR(200), Date_of_birth DATE);" +
                                      "IF object_id('Event') IS NULL CREATE TABLE Event(ID INT PRIMARY KEY IDENTITY, INN INT FOREIGN KEY REFERENCES Persons(INN) ON DELETE CASCADE," +
                                      "Event NVARCHAR(250))
Добавлено через 12 минут
заметил что когда я в программе создаю новую строку в обоих таблицах а потом пытаюсь её удалить пишет ошибку, а когда выхожу с программы и захожу повторно то удаляется без ошибки

Добавлено через 55 минут
Проблема решена наконец-то тему закрываю всем спс за участие
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2012, 14:14
Помогаю со студенческими работами здесь

Удаление цепочки строк в связанных таблицах
Здравствуйте, Уважаемые форумчане! Подскажите, пожалуйста: как удалять строки в связанных таблицах за один присест, например с помощью...

Каскадное удаление записей в связанных таблицах (MS Access)
Нужно удалить запись в связанной таблице, а так как имеются в подчинненой связанной таблице записи соответствующие этой, то следовательно и...

Отбор данных в связанных таблицах
Доброго времени суток форумчане. Имеется база данных с информацией о сотрудниках. В базе 4 таблицы: Сотрудники, Приказы, Подразделение,...

Сохранение данных в БД в связанных таблицах
Всем привет! У меня есть 4 таблицы, из которых 3 завязаны на одну многие ко многим (группа, предмет, курс на специальность). В программе я...

Редактирование данных в связанных таблицах
Подскажите, пожалуйста, как правильно выполнять редактирование данных в связанных таблицах? Есть таблицы tbl1(tbl1ID, Name, Description,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru