Member 11856456 Ответов: 2

Зачем вам нужен оператор open и close при создании оператора SQL, кроме как при использовании адаптера SQL?


Мне было любопытно, я пытался переделать часть своего кода и случайно обнаружил, что если вы решите использовать SQL-адаптер, вам не нужны операторы open и close, но почему? какая разница? Кроме того, что лучше использовать?

Что я уже пробовал:

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

2 Ответов

Рейтинг:
2

Wendelius

Возможно, Вам будет интересен справочный источник. Начинка делается в классе DbDataAdapter в вызываемом методе FillInternal.

Если вы исследуете код, вы увидите, что соединение открывается и закрывается, если оно уже не открыто. Если соединение изначально находится в открытом состоянии,оно остается таким.

Взгляните на Источник Ссылки-DbDataAdapter[^]


Рейтинг:
19

Dave Kreskowiak

Потому что внутренне классы DbDataAdapter сами открывают и закрывают соединение.


Member 11856456

Так что было бы лучше использовать адаптер поверх обычного оператора? я не знал, что связи будут открываться и закрываться сами по себе. Как насчет предыдущих данных, к которым был получен доступ, утилизируются ли они до того, как будут получены новые данные?

Dave Kreskowiak

Он ничем не распоряжается для вас. Ты все равно должен сделать это сам.

DataAdapter хорош для поддержания объекта DataTable, если вам нужно его использовать, но у него есть штрафы за его использование из-за его "универсальной для всех ситуаций" природы и реализации.

Если вы передаете управление всеми данными и обновлениями самостоятельно (я всегда это делаю), то вам не нужен DataAdapter.

Если вы обрабатываете большие наборы данных, где данные слишком велики, чтобы поместиться в памяти все сразу, вы не можете использовать DataSet, DataTable и DataAdapter.