|
|
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Использую VS 2005, создал проект Windows Forms под NET 2.0. В главной форме в дизайн-тайме сделал OleDbConnection и несколько OleDbCommand. Вроде все хорошо. Теперь добавляю к проекту еще оду форму, кидаю туда свои OleDbCommand, но не могу их в дизайн-тайм подключить к тому OleDbConnaction, который в главной форме, его просто не видно из другой формы. Пытался сделать его Public вместо Private - не помогло. В чем может быть дело? Анатолий Анатольевич Иванов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2006, 21:45 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Дак добавьте на фторую форму фторой "OleDbConnaction" и бутьте счасливы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 05:37 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
авторАнатолий Иванов .НЕТ для вас не Делфи здес основном компоненты как sqlconnection, sqlcommand, sqldataadapter создается в ран тиме тоесть программно, и вот поэтому советую вам создавать эти компоненты программно! ---- www.hramin.jino-net.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 10:11 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
типа такое: Код: plaintext 1. 2. 3. 4. ---- www.hramin.jino-net.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 10:13 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
+2Дак добавьте на фторую форму фторой "OleDbConnaction" и бутьте счасливы! А зачем мне ДВА (и более) одновременных соединений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 18:54 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Ramin.НЕТ для вас не Делфи здес основном компоненты как sqlconnection, sqlcommand, sqldataadapter создается в ран тиме тоесть программно, и вот поэтому советую вам создавать эти компоненты программно! Против программно я не против, но почему программно можно назначить один и тот же коннекшн командам в разных формах, ав дизайн-тайме нельзя? В чем великая разница то, если они в одном и том же нэймспэйсе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 18:56 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Raminтипа такое: Код: plaintext 1. 2. 3. 4. Да это то все понятно, даже аналогия с дельфями есть, но почему же нельзя один окннекшн использовать на всю программу то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 18:58 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Дело в том, что в ado.net существует пул коннектов. При этом два соединения с одинаковой строкой подключения, если они не используются одновременно, используют один и тот же объект, обеспечивающий подключение к серверу. -- WBR, RA1OGE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2006, 23:13 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Да. Плюс, ни кто не запрещает создать свой класс, унаследовав его от общего абстрактного класса, содержащего SqlConnection как static member. Пример можете посмотреть тут . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 01:31 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
О чем это я? Не SqlConnection, конечно. В Вашем случае OleDbConnection :-) -- GL RA1OGE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 08:43 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Roman S. GolubinДело в том, что в ado.net существует пул коннектов. При этом два соединения с одинаковой строкой подключения, если они не используются одновременно, используют один и тот же объект, обеспечивающий подключение к серверу. -- WBR, RA1OGE Про пул слышал. Но "если они не используются одновременно" - тогда получается что родительская форма должна закрыть соединение до того, как откроется дочерняя форма. Все таки, я не услышал ответа на вопрос: как добиться в дизайн-тайм использования во всех формах одного и того же соединения и если нельзя то почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 19:56 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Roman S. GolubinДа. Плюс, ни кто не запрещает создать свой класс, унаследовав его от общего абстрактного класса, содержащего SqlConnection как static member. Пример можете посмотреть тут . Это опять же рантайм-решение. В этом случае я могу и одно и то же соединение везде передавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 19:57 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Анатолий ИвановПро пул слышал. Но "если они не используются одновременно" - тогда получается что родительская форма должна закрыть соединение до того, как откроется дочерняя форма. Ну да, а если она не закрыла, то в пуле создается еще одно точно такое же соединение и используется оно. Именно этим и удобен пул соединений. Анатолий ИвановВсе таки, я не услышал ответа на вопрос: как добиться в дизайн-тайм использования во всех формах одного и того же соединения и если нельзя то почему? Вы сами себе противоречите - как Вы будете тогда разделять это соединение между родительской и дочерней формами? Одновременно в одном соединении можно выполнять только одну команду. Анатолий ИвановЭто опять же рантайм-решение. В этом случае я могу и одно и то же соединение везде передавать. А что в Вашем понимании "рантайм"? Вся Visual Studio сама по себе рантайм! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 20:11 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Roman S. Golubin Анатолий ИвановПро пул слышал. Но "если они не используются одновременно" - тогда получается что родительская форма должна закрыть соединение до того, как откроется дочерняя форма. Ну да, а если она не закрыла, то в пуле создается еще одно точно такое же соединение и используется оно. Именно этим и удобен пул соединений. Ну и попутно теряем содержимое временных таблиц, вернее не видим его, т.к. соединение - другое. Roman S. Golubin Анатолий ИвановВсе таки, я не услышал ответа на вопрос: как добиться в дизайн-тайм использования во всех формах одного и того же соединения и если нельзя то почему? Вы сами себе противоречите - как Вы будете тогда разделять это соединение между родительской и дочерней формами? Одновременно в одном соединении можно выполнять только одну команду. А мне одновременно и не надо. Важно чтобы результаты одной могла увидеть другая (во временных таблицах). Roman S. Golubin Анатолий ИвановЭто опять же рантайм-решение. В этом случае я могу и одно и то же соединение везде передавать. А что в Вашем понимании "рантайм"? Вся Visual Studio сама по себе рантайм! В моем понимании "рантайм", это когда я что-то делаю в программе при ее запуске, а не при ее разработке. Хорошо, скажем так: зачем самому писать то, что дизайнер и так напишет также? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2006, 23:46 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Анатолий ИвановНу и попутно теряем содержимое временных таблиц, вернее не видим его, т.к. соединение - другое. Да ну? Если все заранее обдумать, то ни чего не теряется. Анатолий ИвановА мне одновременно и не надо. Важно чтобы результаты одной могла увидеть другая (во временных таблицах). Да увидит она, увидит. При грамотном проектировании каждое соединение используется один раз, "перемещаясь" между формами, потому как оно на формы и не должно быть завязано вовсе. Анатолий ИвановХорошо, скажем так: зачем самому писать то, что дизайнер и так напишет также?Затем, что "размещать" соединение с сервером на форме подобно выливанию компота в суп перед едой. Можно после этого всем жаловаться на повара и говорить, что он плохо сварил суп и компот, потому что вместе их есть не с руки. При правильном же проектировании (то что здесь называют "best practice"), система распадается, как мнинмум, на три составляющие, очень слабо связанные друг с другом (обычно даже выделенные в отдельные библиотеки): 1. Так называемый DAL (Data Access Layer), обеспечивающий соединение с сервером и выполнение всех запросов к нему. 2. BLL (Business Logic Layer), обеспечивающий логику работы приложения. Представляет из себя набор классов, пользующихся сервисом, предоставляемым DAL. 3. GUI (User Interface) - интерфейс пользователя занимающийся выводом сообщений, отображением форм, обработкой событий кнопок и мыши и передачи их в BLL. При таком подходе к проектированию, вопроса "почему нельзя разместить одно соединение на несколько форм" просто не может существовать, так как в 99.9% случаев форма вообще не знает, с каким источником данных работает программа. Так же как и компоненты DAL совершенно не в курсе, в Windows.Forms их выводят или на веб-странице. Кроме того, один раз грамотно написанный DAL позволит в дальнейшем избежать огромного числа ошибок при программировании, увеличить уровень безопасности приложения и, при средних размерах программы, сократит размер кода на порядок. Подробнее о таком подходе к проектированию Вы можете почитать в MSDN (на сайте Microsoft) по ключевым словам DAL, BLL, GUI- там все подробно расписано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 01:15 |
|
||
|
OleDbConnection, OleDbCommand и две формы
|
|||
|---|---|---|---|
|
#18+
Хотел уже спать идти ложиться, но понял еще одну деталь, которая в последствии может Вам, как разработчику, акнуться всвязи с практикой передачи неких данных через временные таблицы на сервере. Простейшая ситуация: разрыв соединения. Все Ваши временные таблицы сервер успешно похоронит. А в них может оказаться, например, работа оператора в течении нескольких часов. При описанном же выше подходе Вы просто восстанавливаете соединение и спокойно продолжаете работать. Бизнес логика приложения разрыва соединения даже не заметит, так как управление соединением находится в закрытом от нее DAL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2006, 01:36 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34139846&tid=1353059]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 192ms |
| total: | 439ms |

| 0 / 0 |
