powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / снова про connection для всего приложения
10 сообщений из 10, страница 1 из 1
снова про connection для всего приложения
    #32553295
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В своем много форменном приложении, я собираюсь сделать один sqlConnection к базе из главной-стартовой формы, присвоить его переменной глобального модуля
а из всех форм ссылаться на эту переменную общего модуля.
Так будет правильно, или же лучше сделать как то подругому?
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32553307
Antropos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я думаю что это зависит от приложения.
Если это просто однопользовательская программа, то можно и так.
А если Web приложение на много пользователецй работающих одновременно, то лудше скорее будет открывать и закрывать соединения с базой данных каждый раз когда есть запрос.
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32553417
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hmsaВ своем много форменном приложении, я собираюсь сделать один sqlConnection к базе из главной-стартовой формы, присвоить его переменной глобального модуля
а из всех форм ссылаться на эту переменную общего модуля.
Так будет правильно, или же лучше сделать как то подругому?

В определенных случаях нормальное и правильное решение. Только держать например такой connection всегда открытым я бы не стал.

В качестве такого общего модуля (DataModule) можете выбрать класс-компонент, тогда у вас сохранится возможность настраивать свой connection, да и другие объекты ADO.NET, при помощи визуальных мастеров Visual Studio.
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32553516
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa

В определенных случаях нормальное и правильное решение. Только держать например такой connection всегда открытым я бы не стал.

В качестве такого общего модуля (DataModule) можете выбрать класс-компонент, тогда у вас сохранится возможность настраивать свой connection, да и другие объекты ADO.NET, при помощи визуальных мастеров Visual Studio.

а по подробнее можно? как выбрать класс-компонент, чтобы сохранить возможность ....
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32553560
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процитирую себя c поправками применительно к VB.NET и данной темы:
Sa
Опишу один из способов как делается один Connection на все приложение. При этом все что касается доступа к БД тоже будет находиться в одном месте.

1) Создаете Component назовем его например DataManager.
2) На этот component "накидываем" DataAdapterы, Connection. При этом полностью используются различные визуальные мастера по генерации процедуры, SQL запросов и т.д.
3) В главной формы создаем объект нашего DataManager, устанавливаем его видимость, например в Friend.
4) Нигде больше не создаем экземпляры класса DataAdapter а используем объекты из нашего компонента DataManager.
5) В нашем компоненте можем создать различные процедуры. Из названия станет понятно их назначение.
FillMyDataSet(ByVal ds as DataSet)
UpdateMyDataSet(ByVal ds as DataSet)

6) Получаем аналог DataModule в Delphi. К которому мы можем обратиться в любой момент через главную форму и передать например свой DataSet для Fill, Update and etc.

Пример использования:
Код: plaintext
1.
mainForm.myDataManager.FillMyDataSet(Me.m_dataSet)


Если что непонятно, или что не получается пишите.
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32553565
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hmsa
как выбрать класс-компонент


В Visual Studio .NET:

File -> Add New Item -> Component Class

Описанный выше способ, представляет из себя обособленный класс-компонент в котором не только один connection, но и все dataadapterы для всего приложения.

Вы для начала можете просто "кинуть" на этот класс-компонент один connection.
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32629746
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот я создала допустим компонент, в коде этого компонента объявила глобальную переменную.
вот мне где-то понадобилось использовать эту переменную, тогда я создаю объект этого компонента dim объект as new компонент далее обращаюсь объект.переменная и ей что-то присваиваю.
Так вот, если мне понадобиться где-нить в др форме значение этой переменной я смогу обратиться к нему? Дело в том, что как я поняла нужно везде создавать экземпляр этого компонента, а если так, то тогда значения не сохраняются что ль (как у глобальных переменных)?
Вообщем я запуталась окончательно :(
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32630011
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не создавать экземпляры, класс мижно сделать статическим и свойство connection тоже , модификатор shared.

Magnus
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32630204
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irinka
Дело в том, что как я поняла нужно везде создавать экземпляр этого компонента, а если так, то тогда значения не сохраняются что ль (как у глобальных переменных)?

Не надо создавать несколько экземпляров этого класса, он должен быть один, например см. совет Magnus23 .
Можете попробовать использовать Module, если просто то Module в VB.NET это класс все члены которого статичны (shared), следовательно можете поместить дата-компонент в Module и обращаться к нему напрямую из любой точки программы (насколько я помню в VB.NET не надо писать и имя класса/модуля для обращения к его членам)

irinka
Вообщем я запуталась окончательно :(

Ничего страшного ведь это настоящее ООП :-) Надо привыкать.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
снова про connection для всего приложения
    #32630208
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irinkaвот я создала допустим компонент, в коде этого компонента объявила глобальную переменную.
вот мне где-то понадобилось использовать эту переменную, тогда я создаю объект этого компонента dim объект as new компонент далее обращаюсь объект.переменная и ей что-то присваиваю.
Так вот, если мне понадобиться где-нить в др форме значение этой переменной я смогу обратиться к нему? Дело в том, что как я поняла нужно везде создавать экземпляр этого компонента, а если так, то тогда значения не сохраняются что ль (как у глобальных переменных)?
Вообщем я запуталась окончательно :(

Кстати, учтите, что статические поля принадлежат не экземпляру класса а самому классу а значит все экземпляры класса будут иметь то же самое значение, unless вы его переопределите в конструкторе.
Это в случае если у вас будет обычный класс но имеющий статические поля.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / снова про connection для всего приложения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]