Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Romantik
1

Метод Execute (проблемы двойного использования)

30.12.2008, 11:09. Показов 2806. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Вот, начинаю практиковаться и в одном примере натолкнулся на следующее:

Выбираю из базы с помощью SqlCommand значения и выполняю
C#
1
2
SqlDataReader dr;
dr= cmd.ExecuteReader();
и потом в цикле while обхожу все значения.
Все работает.
Далее используя хранимую процедуру хочу получить значения
и испоьзую
C#
1
cmd.ExecuteNonQuery();
Тоже великолепно работает.

но если я на одно подключение делаю и выборку с помощью
SqlCommand и с помощью процедуры
то ругается на cmd.ExecuteNonQuery();
There is already an open DataReader associated with this Connection which must be closed first.

Я понял, что нужно закрывать за собой, но не знаю как.
Буду благодарен за советы.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2008, 11:09
Ответы с готовыми решениями:

Вызов метода из vector(a) в функции main без использования вызова execute внутри класса
Добрый день столкнулся с проблемой, что просто не могу вызвать метод из вектора в функции main. Код...

Метод execute()
Здравствуйте! Подскажите пожалуйста с решением части задачи (файл прикреплен), а именно только с...

метод двойного дифференцирования
Здравствуйте! Есть сигнал (1-йскрин), с помощью метода двойного дифференцирования привожу его к...

Получить список с данными о пользователях (requests + vk api + метод execute)
Все привет! Есть код: # -*- coding: utf-8 -*- import vk_api, requests, json access_token =...

6
Romantik
30.12.2008, 12:14 2
а если делаю:
C#
1
2
3
4
5
cn.Close();
cn.Open();
SystemData.SqlClient.SqlCommand cmd1= new System.Data.SqlClient.Sql.Command();
cmd1.Connection= cn;
// и т.д.
То все работает.
Это ФИЧА такая?
Зачем тогда создавать 2 объекта?
Ведь это же не удобно?
Или я не правильно понимаю?
Или я неправильно делаю?
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
30.12.2008, 15:22 3
Нaскoлькo я пoнял, сooбщение oб oшибке гoвoрилo o неoбхoдимoсти зaкрыть DataReader, a не Connection.

Mike
0
Romantik
30.12.2008, 15:34 4
ПОМОГЛО Спасибо!

Просто старая привычка от РНР
Там можно было за собой не закрывать соединения и не очищать память.
al
30.12.2008, 17:10 5
из стaтьи прo datareader:
'...DataReader может использовать Connection только в монопольном режиме. А это значит, что если вы захотите использовать один и тот же Connection для нескольких DataReader-ов то у Вас ничего не получится. Вам надо будет создавать несколько объектов Connection...'
lorden
30.07.2011, 12:56 6
У меня такая же проблема. Но я в этом деле вообще новичек. Пожалуйста подскажите как зaкрыть DataReader. Заранее благодарен!
0 / 0 / 0
Регистрация: 22.09.2010
Сообщений: 23
31.07.2011, 08:56 7
dr.Close();
0
31.07.2011, 08:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2011, 08:56
Помогаю со студенческими работами здесь

Разработать рекурсивный метод для вычисления значения двойного факториала X!
Если X - нечетное, то X!! = 1*3*5*...*X; если X - четное, то X!! = 2*4*6*...*X. Обязательно...

Error H2365: "Override method poster.execute shold match case of ancesor TThread.execute"
Собственно сабж... на ембаркадеро 2010. кто может подсказать как исправить? ведет на строку...

OpenDialog1.Execute/SaveDialog1.Execute
Добрый день. Помогите, пожалуйста: unit Unit1; interface uses Windows, Messages,...

Проблемы использования папок, файлов
Ко мне недавно обратился человек с такой странной проблемой, но я сам некогда не сталкивался с...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru