Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Melo

Закрытие SqlDataReader

05.10.2009, 12:49. Показов 2066. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Критично ли обрамлять работу с SqlDataReader в try/catch с тем чтобы закрывать SqlDataReader в finally-блоке?
Есть огромное количество кода в котором это не делается, то есть в случае возникновения exception строка SqlDataReader.close() не вызывается. Это проблема или нет? Не хотелось бы переделывать тучу кода, тем более, что пока проблем никаких с ним не было - то есть даже в случае возникновения исключения все вроде бы в порядке. Тем не менее есть 'мнение' что это потенциальная проблема. Просветите.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2009, 12:49
Ответы с готовыми решениями:

SqlDataReader и бинарные данные
Уважаемое Эксперты помогите пожалуйста ! Я записываю двоичное данное на базе SQL 2000 обратно когда получаю по запросу SQL ...

SqlDataReader не видит SqlCommand
Приветствую. Столкнулся с не понятной проблемой, код (похожий) без проблем работает в 2х местах, а в новом месте не хочет. using...

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

1
0 / 0 / 0
Регистрация: 25.08.2009
Сообщений: 19
05.10.2009, 14:28
Вобщем слушай сюда, ибо отсюда будет проистекать. (с) М. Жванецкий.

Почему надо закрывать DataReader, как SQL, так и OleDB ? Я лично вижу аж 2 причины. Первая - пока не закрыт предыдущий Reader на соединение нельзя повесить новый. Вторая - у нас конечно мощные машины, но это не оправдывает ленности - ресурсы надо беречь, а если не делать явного закрытия, то оно произойдет. Но потом. Когда сборщик мусора доберется.

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

Кстати вот подумалось. Соединения у нас пулятся. А как попадает в пул, и как там себя ведет соединение на котором висит незакрытый Reader ? Наверное аж никак, и будет открываться новое, что опять ресурсы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2009, 14:28
Помогаю со студенческими работами здесь

Ошибка при вызове SqlDataReader
Есть код: static public decimal SumComplectation(SqlConnection connection) { SqlCommand SqlCom = new...

SqlDataReader. Тупит SELECT DISTINCT
Есть SELECT запрос... Выполняю команду dataReader=command.ExecuteReader(); Потом читаю while(dataReader.Read()) { ...

SqlDataReader обращение без индексов
Обычно делаю вот так: using (SqlDataReader dr = myCommand.ExecuteReader()) { while (dr.Read()) ...

Извлечь данные из SqlDatareader в строку
Нужно извлчь данные из дата ридера строкой представляющей собой одну запись таблицы в БД. Строка должна быть следующего вида: ...

Получить количество строк из SqlDataReader
Как получить количество строк из SqlDataReader? .FieldCounter - это столбцы. А строки как? Нужно узнать количество строк и все занести в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru