Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > 2 запроса в рамках 1-го коннекта


Автор: WolfAlone 25.10.2010, 15:29
Доброго времени суток! Пытаюсь работать с MySQL из C# / Python .net. Для соединения с базой использую MySQL Connector с офф. сайта.

При попытке выполнить 2 запроса, вылазиет примерно следующая ошибка:

Код

MySql.Data.MySqlClient.MySqlException: There is already an open DataReader associated with this Connection which must be closed first.


Скажите пожалуйста, можно ли как-нибудь от неё избавиться не открывая доп. соединения с БД?

Автор: CYBERDREAM 25.10.2010, 15:34
Приветствую WolfAlone,  закрой ридер, перед тем как начать второй выполнять.
давай код, 

Автор: WolfAlone 25.10.2010, 15:46
Ридер не могу закрыть, т.к. сначала нужно получить строку 1-ой таблицы, а потом сделать выборку на основании полученных данных из другой таблицы. Вариант - только делать 2 коннекта?

Добавлено @ 15:47
Или сначала получить все результаты в массив, а потом перебрать его делать выборку из другогой таблицы?

Автор: CYBERDREAM 25.10.2010, 16:21
так сделай все одним запросом)



Автор: WolfAlone 25.10.2010, 17:31
CYBERDREAM, простите мою глупость, но как в таком случае будет выглядеть результат? В родительской таблице содержатся наименования складов (для примера), а в дочерней содержатся "ячейки" этих складов. Если я сделаю JOIN или нечто аналогичное, результат будет выглядеть как:

Код

id sklad_name sklad_cell (из таблицы 2)
1  Склад 1        Инструменты
1  Склад 1        Материалы
2  Склад 2        Продукты
2  Склад 2        Рыба
2  Склад 2        Мясо
3  Склад 3        Кондитерский изделия


А в виду того, что мне нужно на основе полученных данных строить дерево - придётся опять таки, программно выбирать уникальные значения поля "sklad_name", а в таком случае теряется смысл разделения данных на 2 независимые таблицы, т.к. можно было бы всё в одну таблицу воткнуть, а это повлекло за собой ещё целую цепочку не нужных мне последствий!

Автор: WolfAlone 27.10.2010, 09:37
Вопрос решен. Всем спасибо!

P.S. Особая благодарность CYBERDREAM!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)