powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / OleDbConnection, OleDbCommand и две формы
16 сообщений из 16, страница 1 из 1
OleDbConnection, OleDbCommand и две формы
    #34138798
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую VS 2005, создал проект Windows Forms под NET 2.0.
В главной форме в дизайн-тайме сделал OleDbConnection и несколько OleDbCommand. Вроде все хорошо. Теперь добавляю к проекту еще оду форму, кидаю туда свои OleDbCommand, но не могу их в дизайн-тайм подключить к тому OleDbConnaction, который в главной форме, его просто не видно из другой формы. Пытался сделать его Public вместо Private - не помогло. В чем может быть дело?

Анатолий Анатольевич Иванов
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34138983
+2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+2
Гость
Дак добавьте на фторую форму фторой "OleDbConnaction" и бутьте счасливы!
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139020
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторАнатолий Иванов
.НЕТ для вас не Делфи здес основном компоненты как sqlconnection, sqlcommand, sqldataadapter создается в ран тиме тоесть программно, и вот поэтому советую вам создавать эти компоненты программно!

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139021
Фотография Ramin Hashimzade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
типа такое:
Код: plaintext
1.
2.
3.
4.
sqlconnection con = new sqlconnection("my connection string");
sqlcommand com = new sqlcommand("select ляляля", con);
sqldataadapter sdp = new sqldataadapter();
sdp.selectcommand = com;
sdp.fill(mydataset.mytable);

----
www.hramin.jino-net.ru
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139426
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+2Дак добавьте на фторую форму фторой "OleDbConnaction" и бутьте счасливы!
А зачем мне ДВА (и более) одновременных соединений?
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139429
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ramin.НЕТ для вас не Делфи здес основном компоненты как sqlconnection, sqlcommand, sqldataadapter создается в ран тиме тоесть программно, и вот поэтому советую вам создавать эти компоненты программно!

Против программно я не против, но почему программно можно назначить один и тот же коннекшн командам в разных формах, ав дизайн-тайме нельзя? В чем великая разница то, если они в одном и том же нэймспэйсе?
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139434
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Raminтипа такое:
Код: plaintext
1.
2.
3.
4.
sqlconnection con = new sqlconnection("my connection string");
sqlcommand com = new sqlcommand("select ляляля", con);
sqldataadapter sdp = new sqldataadapter();
sdp.selectcommand = com;
sdp.fill(mydataset.mytable);

Да это то все понятно, даже аналогия с дельфями есть, но почему же нельзя один окннекшн использовать на всю программу то?
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139628
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что в ado.net существует пул коннектов. При этом два соединения с одинаковой строкой подключения, если они не используются одновременно, используют один и тот же объект, обеспечивающий подключение к серверу.
--
WBR,
RA1OGE
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139700
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Плюс, ни кто не запрещает создать свой класс, унаследовав его от общего абстрактного класса, содержащего SqlConnection как static member. Пример можете посмотреть тут .
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34139846
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О чем это я? Не SqlConnection, конечно. В Вашем случае OleDbConnection :-)

--
GL RA1OGE
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34142032
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinДело в том, что в ado.net существует пул коннектов. При этом два соединения с одинаковой строкой подключения, если они не используются одновременно, используют один и тот же объект, обеспечивающий подключение к серверу.
--
WBR,
RA1OGE
Про пул слышал. Но "если они не используются одновременно" - тогда получается что родительская форма должна закрыть соединение до того, как откроется дочерняя форма.
Все таки, я не услышал ответа на вопрос: как добиться в дизайн-тайм использования во всех формах одного и того же соединения и если нельзя то почему?
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34142035
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinДа. Плюс, ни кто не запрещает создать свой класс, унаследовав его от общего абстрактного класса, содержащего SqlConnection как static member. Пример можете посмотреть тут .
Это опять же рантайм-решение. В этом случае я могу и одно и то же соединение везде передавать.
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34142056
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ИвановПро пул слышал. Но "если они не используются одновременно" - тогда получается что родительская форма должна закрыть соединение до того, как откроется дочерняя форма.
Ну да, а если она не закрыла, то в пуле создается еще одно точно такое же соединение и используется оно. Именно этим и удобен пул соединений.
Анатолий ИвановВсе таки, я не услышал ответа на вопрос: как добиться в дизайн-тайм использования во всех формах одного и того же соединения и если нельзя то почему?
Вы сами себе противоречите - как Вы будете тогда разделять это соединение между родительской и дочерней формами? Одновременно в одном соединении можно выполнять только одну команду.

Анатолий ИвановЭто опять же рантайм-решение. В этом случае я могу и одно и то же соединение везде передавать.
А что в Вашем понимании "рантайм"? Вся Visual Studio сама по себе рантайм!
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34142276
Фотография Анатолий Иванов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. Golubin Анатолий ИвановПро пул слышал. Но "если они не используются одновременно" - тогда получается что родительская форма должна закрыть соединение до того, как откроется дочерняя форма.
Ну да, а если она не закрыла, то в пуле создается еще одно точно такое же соединение и используется оно. Именно этим и удобен пул соединений.

Ну и попутно теряем содержимое временных таблиц, вернее не видим его, т.к. соединение - другое.
Roman S. Golubin Анатолий ИвановВсе таки, я не услышал ответа на вопрос: как добиться в дизайн-тайм использования во всех формах одного и того же соединения и если нельзя то почему?
Вы сами себе противоречите - как Вы будете тогда разделять это соединение между родительской и дочерней формами? Одновременно в одном соединении можно выполнять только одну команду.

А мне одновременно и не надо. Важно чтобы результаты одной могла увидеть другая (во временных таблицах).
Roman S. Golubin Анатолий ИвановЭто опять же рантайм-решение. В этом случае я могу и одно и то же соединение везде передавать.
А что в Вашем понимании "рантайм"? Вся Visual Studio сама по себе рантайм!
В моем понимании "рантайм", это когда я что-то делаю в программе при ее запуске, а не при ее разработке.
Хорошо, скажем так: зачем самому писать то, что дизайнер и так напишет также?
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34142307
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ИвановНу и попутно теряем содержимое временных таблиц, вернее не видим его, т.к. соединение - другое.
Да ну? Если все заранее обдумать, то ни чего не теряется.
Анатолий ИвановА мне одновременно и не надо. Важно чтобы результаты одной могла увидеть другая (во временных таблицах).
Да увидит она, увидит. При грамотном проектировании каждое соединение используется один раз, "перемещаясь" между формами, потому как оно на формы и не должно быть завязано вовсе.
Анатолий ИвановХорошо, скажем так: зачем самому писать то, что дизайнер и так напишет также?Затем, что "размещать" соединение с сервером на форме подобно выливанию компота в суп перед едой. Можно после этого всем жаловаться на повара и говорить, что он плохо сварил суп и компот, потому что вместе их есть не с руки.

При правильном же проектировании (то что здесь называют "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- там все подробно расписано.
...
Рейтинг: 0 / 0
OleDbConnection, OleDbCommand и две формы
    #34142313
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел уже спать идти ложиться, но понял еще одну деталь, которая в последствии может Вам, как разработчику, акнуться всвязи с практикой передачи неких данных через временные таблицы на сервере.
Простейшая ситуация: разрыв соединения. Все Ваши временные таблицы сервер успешно похоронит. А в них может оказаться, например, работа оператора в течении нескольких часов.
При описанном же выше подходе Вы просто восстанавливаете соединение и спокойно продолжаете работать. Бизнес логика приложения разрыва соединения даже не заметит, так как управление соединением находится в закрытом от нее DAL.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / OleDbConnection, OleDbCommand и две формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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