| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Удаление данных в связанных DataGridView |
| Автор: Ald 5.8.2008, 23:42 | ||
Здравствуйте. Есть 2 связанные таблицы из базы Northwind – Customers и Orders. Связь один ко многим. Данные из тех таблиц я вывожу на 2 связанных между собой DatagridView. Нужно по выбору пользователя осуществить удаление записи из главной таблицы или из подчиннеой таблицы. Пользователь выбирает данные путем клика на нужном поле и нажимает кнопку удалить.
Если нужно удалить запись из главной таблицы, то тут все просто я получаю значение CustomerID c помощью: dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[0].Value Далее выполняю запрос на удаление всех записей из подчиненной таблицы и 1 запись из главной. Но как узнать какую запись пользователь выбрал в подчиненном гриде, если ему нужно удалить 1 запись из него и не удалять данные из главной таблицы? |
| Автор: MasterOfCode 6.8.2008, 05:41 |
| Вообще то все это должно решаться в триггерной логике в самой СУБД. Пишешь триггер, цепляешь его на событие к таблице. В самой программе не чего не делаешь кроме удаления записи... |
| Автор: vretsky 6.8.2008, 09:30 |
| так же как и в главном гриде, д.б. поле ID в таблице "заказы", выводишь его в грид (можно невидимым), получаешь так же его значение и удаляешь. в чем проблема не очень понимаю? может в табле "заказы" нет ключа? Добавлено через 4 минуты и 6 секунд для MasterOfCode какой триггер? база mdb Добавлено через 8 минут и 2 секунды пардон прошу прощения... не проснулся исче |
| Автор: vretsky 6.8.2008, 10:45 | ||
да точно так же через CurrentCell повторил ваш код, добавил это: MessageBox.Show(dataGridView2[0, dataGridView2.CurrentCell.RowIndex].Value.ToString()); нормально работает. если первое поле в таблице заказов ID, то: string orderNumber=dataGridView2[0, dataGridView2.CurrentCell.RowIndex].Value.ToString(); string delCMD="DELETE FROM ORDERS WHERE ID=" + orderNumber; (ну или там передать как параметр в строку запроса) и удаляйте на здоровье |
| Автор: Ald 6.8.2008, 20:02 |
| vretsky спасибо за помощь, нашел свою ошибку. |