Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
10 / 10 / 0
Регистрация: 09.10.2010
Сообщений: 57

Сохранение данных из DataSet в БД

05.07.2013, 02:12. Показов 1319. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
В моей программе появились непонятная проблема.
В бд имеется две таблицы (Projects и Bugs), связанные одним полем (Project_ID), как один ко многим.
С DataSet все в порядке, проблема при сохранении в БД.

Проблема:
При удалении Проекта удаляю сначала Баги, соответствующие Проекту, затем сам Проект.
Если Проекту приписаны Баги, то Баги удаляются, а Проект нет. То есть в БД остается пустой Проект без багов.
Если удалять пустой Проект, то он удаляется, в БД его нет.

Приведу часть кода без лишнего мусора:
Здесь удаляются записи:
C#
1
2
3
4
5
6
7
DataRow[] drProject = bugtracker_DBDataSet.Tables[1].Select("Project_ID = ' " + projectForDelID + " '");
            foreach (var rowP in drProject)
            rowP.Delete();
 
            DataRow[] drBug = bugtracker_DBDataSet.Tables[0].Select("Project_ID = ' " + projectForDelID + " '");
            foreach (var rowB in drBug)
                rowB.Delete();
Здесь сохраняется все в БД:
C#
1
2
3
4
5
6
7
8
9
10
try
                {
                    projectsTableAdapter.Update(bugtracker_DBDataSet.Projects);
                }
                catch (Exception ex) { MessageBox.Show(ex.ToString()); }
                try
                {
                    bugsTableAdapter.Update(bugtracker_DBDataSet.Bugs);
                }
                catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Может кто-то может что-то посоветовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.07.2013, 02:12
Ответы с готовыми решениями:

Сохранение данных из DataSet
Как сделать так, чтобы при изменении DataGridView сохранялись данные назад в базу данных! Я добавил на форму DataGridView. Выбрал для...

Сохранение изменений DataSet в базе данных
Добрый вечер! Работаю в VS Community 2015. Имеется база данных stock.mdf и в ней таблица Assortment с полями Id с автоинкрементом и...

Сохранение данных с DataSet в базу данных
Здраствуйте. У меня есть датагрид который подвязан к таблице в базе. Мне нужно что бы при клике на кнопку данные которые ввели в грид...

4
10 / 10 / 0
Регистрация: 09.10.2010
Сообщений: 57
05.07.2013, 02:20  [ТС]
При сохранении, или вместо сохранения возникает ошибка:

Но Баги, приписанные проекту все равно удаляются, а проект нет.
0
 Аватар для mrReptiloid
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
05.07.2013, 02:40
написано же,что конфликт с reference key
1
10 / 10 / 0
Регистрация: 09.10.2010
Сообщений: 57
05.07.2013, 04:06  [ТС]
А что это значит? Как это исправить? Я не искушен в БД, потому недопонимаю некоторых вещей.

Добавлено через 1 час 2 минуты
Все исправил.

Добавлено через 9 минут
А нет, не исправил.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
05.07.2013, 05:03
Zanzibarsky, Во-первых, ответьте для себя на вопрос: "Когда данные удаляются из базы данных?". Они удаляются тогда, когда вы вызываете Update у DataAdapter'а. Сначала вы обновляете на базе таблицу Projects (включая удаление строк), а только потом таблицу Bugs. Таким образом, в момент, когда на базе выполняется инструкция DELETE для таблицы Projects, в таблице Bugs могут быть строки, которые ссылаются на удаляемую строку. Вы либо сначал выполняйте Update для удаленных строки:
C#
1
2
DataTable DeletedBugs = bugtracker_DBDataSet.GetChanges(DataRowState.Deleted);
if(DeletedBugs != null) bugsTableAdapter.Update(DeletedBugs);
Либо разбирайтесь с методом UpdateAll у TableAdapterManager'а.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.07.2013, 05:03
Помогаю со студенческими работами здесь

Передача данных из таблицы одной dataSet в таблицу другой dataSet
Здравствуйте. У меня возникла ситуация когда необходимо передать данные из таблицы одной dataset в таблицу другой dataset, которая хранит...

DataSet и сохранение в БД
Доброго времени суток, подскажите пожалуйста. У меня есть DataSet заполненный данными из .csv файла, как сохранить эти данные в БД. Буду...

Запись данных в базу данных mdb с использованием DataAdapter и DataSet
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender, EventArgs e) { OleDbConnection...

Сохранение импортированных данных в datagridview, который связан DataSet
Здравствуйте. Необходимо организовать импорт с листа Excel в datagridview из Ecel, который отображает данные из DataSet. DataSet...

Копирование данных из DataSet в DataSet
Люди, подскажите, как мне скопировать данные из одного DataSet(Access) в другой(Наборы данных имееют одинаковую структуру). Мне кажется,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru