Ошибка "с этой командой уже связан открытый datareader, который должен быть закрыт первым."
Как мне преодолеть эту ошибку, которая всегда возникает во время нескольких обращений к одному и тому же процессу "с этой командой уже связан открытый считыватель данных, который должен быть закрыт первым."
Любая помощь будет оценена по достоинству.
заранее спасибо
Что я уже пробовал:
Эта ошибка возникает в нескольких местах моего проекта.
Это мой код:
Shared Function GetTable(ByVal SqlString As String) As DataSet Dim ds As New DataSet If con.State = ConnectionState.Closed Then con.Open() Using con Dim da As New SqlClient.SqlDataAdapter(SqlString, con) da.SelectCommand.CommandTimeout = 5000 da.Fill(ds) End Using Return ds
CPallini
Тогда закрой проклятый DataReader.
(Я не могу дать лучшего ответа, потому что вы дали мне плохую информацию).
Anjani Rawat
Я не использовал datareader в своем проекте, я использовал dataset, но эта ошибка возникает.
Ralf Meier
И какую помощь вы хотите получить без какой-либо информации о вашем коде-конструкции ?
Anjani Rawat
Это мой код:
Общий Метод Gettable Функции(Типа Sqlstring Бывал Как Строка), А Массив Данных
Dim ds как новый набор данных
Если Кон.Состояние = ConnectionState.Закрыто, потом кон.Открыть()
Используя кон
Dim da как новый SqlClient.SqlDataAdapter(SqlString, con)
да.Команды selectcommand.CommandTimeout = 5000
да.Заполнить(ДС)
Конец Использования
Возврат ДС
Ralf Meier
Так... почему бы вам не закрыть соединение перед выходом из функции ?
Anjani Rawat
Пожалуйста, посмотрите код, который я уже закрыл, как "End Using" и начните соединение как " Using con"
Ralf Meier
если 'помощью' закрывает соединение - зачем ты открыл это явный перед использованием кон' ?