Я разрабатываю приложение, которое использует строго типизированные наборы данных и хранимые процедуры. Я только что закончил учебу, и это был метод, который нам продали. Я начинаю сильно сомневаться.
Мой клиент сообщил мне, что он может перейти с SQL Server на MySQL. Из того, что я читал, может быть лучше не использовать хранимые процедуры, так как миграция может стать более сложной. Так или иначе, я только что реализовал новый запрос адаптера таблицы с помощью мастера и выбрал Использовать операторы SQL вместо Создать новую хранимую процедуру.
Мой звонок на запрос
Intranet.administratorsDataTable dt = taAdministrators.GetAdministrators();
теперь выдает эту ошибку:
executereader требует открытого и доступного соединения. текущее состояние соединения закрыто
Я понятия не имею, почему этот автоматически сгенерированный код не имеет связи, и я с похмелья и не в состоянии справиться с этим. Я решил просто вернуться к SP на данный момент, чтобы я мог сделать некоторую работу. Эта ошибка все еще выдается (тот же адаптер таблицы, то же имя метода, но перенастроен для использования SP). Все мои другие вызовы БД работают нормально.
Я предполагаю, что сгенерированный код SQL все еще где-то плавает, хотя я изменил адаптер для использования SP. Может кто-нибудь сказать мне, где это, чтобы я мог удалить его?
С другой стороны, я действительно начинаю думать, что использование SqlConnection и SqlCommand вручную является гораздо лучшим вариантом, так как использование этих запросов «Инструменты» вызывает много проблем, когда речь идет о гибкости, такой как изменение таблиц базы данных и т. д. Может ли любой из вы, более опытные люди, скажите мне, правильно ли это, или вы выступаете за использование настольных адаптеров?
*Редактировать он также выдает следующее:
Неверная операция. Соединение закрыто.
а также
С этой командой уже связан открытый DataReader, который необходимо сначала закрыть.