![]() |
|
Модераторы: gambit |
![]()
|
|
| Torrero |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
В общем задача такая: считать таблицу из бд и вывести в листбокс...все просто... но есть одна загвоздка: при добавлении новой записи в таблицу нужно отобразить изменения в листбоксе...
Т.е. вот что я имею в виду: Запускается приложение, из таблицы считываются данные и отображаются в листбоксе, при нажатии на кнопку добавить, запускается другая форма(при помощи ShowDialog). При помощи этой самой формы мы добавляем новую записи в таблицу, и по нажатии пимпы "ОК" эта форма закрывается(this.Close();) и активируется снова главная форма с листбоксом(при помощи Owner.Activate(); ) Фишка в том чтобы заставить листбокс заново считать обновленную таблицу из бд, ведь запись новую мы добавили а в листбоксе она не появилась. Заполнение листбокса:
Добавление новой записи в таблицу
И на всякий случай выкладываю класс который используется для доступа к оракл:
Очень прошу помощи а то уже пол дня мучаюсь:( З.Ы. прошу прощение заранее за возможные обшибки, очепятки и прочее З.З.Ы. также есть дополнительный вопрос не по теме, по поводу класса который используется для доступа к оракл. Только заметил что соединение открывается но нигде не закрывается. Подскажите плиз как лучше всего реализовать закрытие соединения(если конечно оно нужно) З.З.З.Ы. поиском пользовался! нашел туеву хучу тем про листбокс, но того что мне надо не нашел! |
||||||
|
|||||||
| Unlocker |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
В связи с прочтением проблемы возник вопрос: а как осуществляется доступ к данным?
Сколько слоев доступа к данным 2: БД -- интерфейс 3: БД -- DataSet -- интерфейс В последнем случае все предельно просто: у ListBox'a есть свойство DataSource для связи с источником данных. Его и надо использовать. Последовательность действий такая: соединиться с БД и заполнить твой DataSet данными; работать с локальной копией данных до тех пор пока необходимо; синхронизировать локальную копию с БД по окончании работы или в другой необходимый момент. Свойству DataSource у ListBox'a надо присвоить имя локальной таблицы, соответственно при изменении этой таблицы в интерфейсе будут отображаться все изменения. Для двухуровневой архитектуры все несколько сложнее, т.к. надо продумывать механизм организации оповещения интерфейса клиента об изменениях в таблицах БД на сервере. --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
|||
|
||||
| Torrero |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Доступ к данным осуществляется по второму способу(БД -- DataSet -- интерфейс), прочтитайте внимательно коды плиз
насколько я помню в этом и состоит вся проблема, как заставить синхронизировать локальную копию таблицы с бд, при закрытии одной формы и активации другой! В общем посмотрите плиз повнимательнее код(там вроде немного), и посоветуйте плиз еще по другому вопросу: Учитывая существующую "бизнес-логику" (я имею в виду тот класс что используется для работы с оракл), то подскажите плиз как лучше всего осуществить закрытие соединения? ведь есть функция которая открывает его, а про закрытие я совсем забыл (большую часть этого примера нашел в интернете, я лишь дописал нужные мне функции) ... |
||||
|
|||||
| Unlocker |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 2.11.2007 Где: Москва - Знаменск (Капустин Яр) Репутация: 1 Всего: 2 |
Я только не пойму: что мешает главной форме приложения синхронизировать данные с БД на основе DialogResult, который возвращает дочернее окно? Написать функцию закрытия соединения в классе OrcConnection. А мне кажется, что надо определить ту часть приложения, которая отвечает за использование соединения (я обычно использую главное окно). Алгоритм работы управляющей части:
нигде не увидел объявления DataSet'a. Извиняюсь, если поторопился. А таблицы, насколько смог видеть, нетипизированные, что и навело на мысль о двухуровневой архитектуре доступа. PS: какая версия Студии используется? все, о чем я пишу здесь обкатано на паре Visual Studio 2005 + SQL Server 2005 DevEdition --------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b." |
||||
|
|||||
| Torrero |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 14.11.2006 Репутация: нет Всего: нет |
Спс большое все работает!огромное спасибо!
З.Ы. есть небольшой вопрос, а что происходит если у нас есть незакрытое соединение с оракл, и мы открываем новое? и если открывается новое(второе) соединение ,то можно ли как-то посмотреть количество открытых соединений, чтобы "вживую" увидеть последствия незакрытых соединений |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |