Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / сколько должно быть connection'ов / 15 сообщений из 15, страница 1 из 1
18.06.2004, 14:54
    #32567525
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Вопросик.. у меня форма, на ней коннекшн и датаадаптер.. из этой формы открываются другие формы - справочники (грузы, организации).. как я понял нужно на каждой форме-справочнике снова создавать коннекшн и датаадаптер (делаю их не программно, а перетаскиванием)..
а не будет ли "тормозов" при отрытии приложения от такого количества коннешнов?
нужно ли управлять открытием/закрытием коннекшнов созданных не программно или они закрываются автоматически?
спасибо.
...
Рейтинг: 0 / 0
18.06.2004, 16:32
    #32567806
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
ответ
...
Рейтинг: 0 / 0
21.06.2004, 09:27
    #32568965
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Спасибо, но все равно немножко не то, что я хотел услышать..
я сделаю допустим штук 5 коннекшнов... нужно ли мне их открывать и закрывать их программно?
...
Рейтинг: 0 / 0
21.06.2004, 09:29
    #32568969
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
я, помню, читал где-то что выполнив Fill адаптер закрывается автоматом.. т.е. коннекшн закрывается или ему надо помочь программно?
...
Рейтинг: 0 / 0
21.06.2004, 11:00
    #32569137
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Даже если и открывается и закрывается автоматом, то рекомендовал бы открывать и закрывать руками, во избежании путаниц, типо: вот таких
...
Рейтинг: 0 / 0
21.06.2004, 11:07
    #32569163
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Спасибо, vladgrig..
наверное остановлюсь на том, что в главной форме сделаю коннэкшны перетаскиванием, а в справочниках буду создавать коннэкшны только программно..
надеюсь это правильное решение..
...
Рейтинг: 0 / 0
21.06.2004, 11:10
    #32569172
Ustazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
ДудкинСпасибо, но все равно немножко не то, что я хотел услышать..
я сделаю допустим штук 5 коннекшнов... нужно ли мне их открывать и закрывать их программно?

Адаптер оставляет соединение в том же состоянии, что оно было. А вот если использушь команды напрямую, тогда соединение нужно открывать и закрывать самому.

По-умолчанию, насколько помню, используется пул соединений, так что соединения не уничножаются после закрытия, а переходят в неактивное состояние. При повторной попытке открытия соединения, оно будет получено из пула, что гораздо быстрее, чем если бы его пришлось создавать заново.
...
Рейтинг: 0 / 0
21.06.2004, 11:13
    #32569178
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Спасибо, Ustazz..
А как Вы делаете? Создаете ли для каждой новой формы новое соединение?
...
Рейтинг: 0 / 0
21.06.2004, 11:19
    #32569186
Max Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
ДудкинСпасибо, Ustazz..
А как Вы делаете? Создаете ли для каждой новой формы новое соединение?
Я закрываю соединение при первой возможности.
И не стесняюсь создавать новые.

...
Рейтинг: 0 / 0
21.06.2004, 11:30
    #32569216
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Господа, утомил уже наверное.. Если я создам три соединения на трех формах (путем перетаскивания), будут ли эти ВСЕ три соединения открытимы на момент загрузки приложения? Или каждое соединение открывается при открытии своей формы?
...
Рейтинг: 0 / 0
21.06.2004, 11:46
    #32569264
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Извиняюсь, но я не пойму (в силу своего ламерства) - зачем к одной базе создавать несколько connect. Разве нельзя использовать один???
Создать Class (как описывал Sa), или подобное...
Тем более
авторПо-умолчанию, насколько помню, используется пул соединений, так что соединения не уничножаются после закрытия, а переходят в неактивное состояние. При повторной попытке открытия соединения, оно будет получено из пула, что гораздо быстрее, чем если бы его пришлось создавать заново.
...
Рейтинг: 0 / 0
21.06.2004, 11:47
    #32569270
Дудкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
2 ALL
Всем спасибо...
Я нашел ответ на вопрос, который меня терзал...
Изначально соединение закрыто.. поэтому, ИМХО, количество соединений не важно
вот кодMsgBox(conn.State.ToString)
AdapAll.Fill(DsAll1)
MsgBox(conn.State.ToString)
получается что количество соединений не влияет на время загрузки приложения (ведь все равно они все закрыты)..
Если я не прав, пожалуйста поправьте...
...
Рейтинг: 0 / 0
21.06.2004, 12:34
    #32569404
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
мне кажется я понял проблему...
Один из методов использования одного connect для разных форм:
в формах можно писать dim form1 as new form1 (форма на которой connect1)
и потом обрасчаться к connect вот так из этих форм form1.connect1
и тогда не нужно создавать новые connect на формах
P.S. методы по созданию новых connect на разных формах я думаю, тоже правильны, но например мне это не удобно (дело вкуса)
...
Рейтинг: 0 / 0
21.06.2004, 14:56
    #32569819
Ustazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
При перетаскивании коннекшена на форму, строка соединения прописывается в коде. Таким образом она будет прописана в коде столько раз, сколько есть форм в приложении. Часто ее удобнее хранить в каком то другом месте (например, в конфигурационном файле, реестре, что-то можно спрашивать у пользователя). Мне кажется удобней явно брать строку подключения из специального класса, например, так ApplicationSettings.ConnectionString.

Если уж говорить, о том как делать еще правильней :) , так стоит вспомнить про отделение логики доступа к данным и бизнес-логики от интерфеса пользователя. В случае простого приложения доступа к БД это не так существенно. В сложных случаях одни и те же команды могут вызываться из разных форм и т. п. С такой точки зрения соединение - это не элемент формы. И используется этот объект только во время выполнения операции над БД; нас не должно волновать в каком состоянии он был до этого. Я делаю new SqlConnection(ApplicationSettings.ConnectionString), открываю соединение и не мучаюсь вопрсами :)
...
Рейтинг: 0 / 0
22.06.2004, 09:42
    #32570842
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько должно быть connection'ов
Дудкин
я, помню, читал где-то что выполнив Fill адаптер закрывается автоматом.. т.е. коннекшн закрывается или ему надо помочь программно?


Для Fill явно открывать соединение действительно нет необходимости.
Полезно самому открыть соединение явно если у вас группа Fill (два и более), после всех Fill соединение следует закрывать вручную- такой подход будет работать эффективнее.

В остальных вопросах - несколько экземпляров класса Connection или один, то делайте как вам удобно. Тем более вас (пока :-) ) не интересуют некоторые вопросы, например единная строка соединения .

Основное правило которое я придерживаюсь при использовании ADO.NET, да и советую придерживаться остальным это:
"Открывать соединение как можно позже, закрывать как можно раньше"


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


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