![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Подскажите плиз!
Проблема: Из базы данных запись удаляется, а из Grid`а нет! ![]() Как обновить ГРИД? --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 2 Всего: 186 |
DataGridView.Refresh()?
|
|||
|
||||
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Это я пробовал! Не помогает! --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
albert21, Exception, и как же вы хотите, чтобы датасет синхронизировал изменения сам? Надо удалить row из датасета, и вызвать DataAdapter.Update(). Есессно, необходимо чтобы в адаптере присутствовала эта самая DeleteCommand.
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
Последняя строка вызывает сомнения. Надо бы её убрать, либо заменить на AcceptChanges(). -------------------- ![]() |
|||
|
||||
albert21 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Пробовал, ситуация без изменений! Вообще не понимаю в чём проблема! В ASP.NET у меня возникал подобный вопрос, но его удалось решить так:
Но там использовался просто грид! В Windows приложении я не знаю как получить набор выделенных строк, как обращаться к полям выделенной строки? --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
||||
|
|||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 8 Всего: 232 |
В WinForms-приложении любой контрол незамедлительно реагирует на изменения в источнике данных, к которому он привязан. Единственным подводным камнем тут может быть необходимость вызвать у контрола BeginUpdate до обновления и EndUpdate после обновления источника данных...
-------------------- ![]() |
|||
|
||||
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Всё с самого начала логично! Я произвожу изменения в самой базе данных (напрямую), а не в DataSet! Поэтому AdapterDisk.Update(DiskotekaDS, "Disk"); ни чего не делает, так как DataSet и не изменился!
Я сделал так:
Ну а потом: AdapterDisk.Update(DiskotekaDS, "Disk"); получаю ошибку "Не был задан текс команды для командного объекта" Подскажите, как исправить? --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
albert21, заполнить DataAdapter.DeleteCommand.
Ты что, не читал мой пост? |
|||
|
||||
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
arilou, извиняюсь действительно не читал, упустил из виду почему-то!
чем его заполнить? Ведь запись удаляется в зависимости от значения первичного ключа! DELETE FROM Disk WHERE ID=... ??? --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
И вообще, System.Data.OleDb.OleDbCommandBuilder должен автоматически генерить SQL команды к базе данных (таблица имеет первичный ключ).
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
Чтобы он смог работать, вся информация о schema должна присутствовать в датасете. А он у тебя не типизированный, и скорее всего инфы в нем нет. |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 1 Всего: 25 |
Если запись в базе точно удаляется, то можно после удаления очистить датасет, заново наполнить его ДатаАдаптером и ДатаГрид.ДатаСорс заново приравнять к нужной таблице...
-------------------- ![]() |
|||
|
||||
arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 4 Всего: 61 |
||||
|
||||
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Полностью согласен. Но что-то настроить не получается создавал я типизированный ДатаСет и снова получил туже картину Файл прикрепил, может кто заинтерисуется проблемой! База данных в папке с exe-шником Присоединённый файл ( Кол-во скачиваний: 66 ) ![]() --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
albert21 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
Я разобрался!!!
![]()
Так вот, для того чтобы выше описанных проблем не возникало необходимо закоментировать всё что связано с командами Insert, Update, Delete! Тогда, при наличии OleDbCommandBuilder, команды редактирования будут генериться без проблем. Может для кого-то это и было очевидным, но не для меня! ![]() Программу я писать ещё не закончил, а следовательно может возникнуть продолжение разговора! Всем спасибо за внимание! --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
|||
|
||||
Butch |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 6.1.2007 Репутация: нет Всего: 1 |
Всемогущий All помоги чем можешь
![]() устал биться головой ап стену ![]() не стал открывать новую тему т.к. данная пересекается очень близко с моей проблемой..... Попробую подробней описать мою проблему: Есть класс для работы с БД Access и две формы. Первая форма содержит dataGridView (Enable Adding=false, Enable Editinig=false, Enable Deleting=falase, Enable Column Reordering=false) и кнопку для редактирования БД(открывает вторую форму с несколькими textBox-ми, кнопками `Ок` и `Отмена`). Код из класса для работы с БД:
на Load формы с dataGridView использую следующий код:
код кнопки для вызова второй формы для едита:
код кнопки 'Ок' на второй форме:
Ну вот вроде бы и все, а проблема следующая: по нажатии кнопки 'Ок' - изменяется таблица в БД, dataGridView остается не изменым но если закрыть и открыть форму увидим измененный дата грид Пробывал - MyTable.AcceptChanges(); // не полетело - dataGridView.Refresh(); // не полетело - ds.Clear(); повторный вызов BD.SelectTable("...."); // летит, но криво, а криво не охото ![]() |
||||||||
|
|||||||||
albert21 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 10.1.2006 Репутация: нет Всего: нет |
У меня вызывает сомнения вот этот код:
Хотя может это и нормально. Эсли у тебя типизированный ДатаСет, то могу предложить вот такой вариант:
А вообще по поводу твоего кода такие соображения: Адаптер нужен для того, чтобы работать непосредственно с БД. Для того, чтобы изменения отображались в гриде необходимо удалить запись в ДатаСете, а затем указать гриду источник dataGridBook.DataSource = dataSetBiblion.Table; --------------------
http://www.certifications.ru/publicresults.php?tu_id=45939 |
||||
|
|||||
RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: нет Всего: 6 |
в продолжении темы..
как обновить DataGridView после занесения в базу данных новой строки. ![]() Это сообщение отредактировал(а) RWander - 31.10.2007, 23:00 -------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
RWander,
Если мой DGV отображает данные из таблицы ДатаСета в которую были внесены изменения, то к двум стандартным строкам кода я добавляю еще две
Если же таблица ДатаСета, которая отображается в DGV, не содержит в себе обновленные данные, то надо по-новой выполнить запрос к БД и заполнить таблицу ДС обновленными данными и после этого вывести в DGV. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
insaneghost |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 11.3.2009 Репутация: нет Всего: нет |
а еще есть какой-нибудь способ обновить dgv без изменения у него datasource?
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [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. |