У меня есть следующий скрипт, который извлекает данные из базы данных и затем удаляет их:
public void checkDB()
{
string query = "SELECT * FROM dbt";
SqlCommand sqlCommand = new SqlCommand(query, conn);
SqlDataReader reader;
int id = -1;
using (reader = sqlCommand.ExecuteReader())
{
if (reader.Read())
{
String data= reader["sdata"].ToString();
Order o = new Order(reader["sdata"].ToString());
o.prepareForScript();
id = reader.GetSqlInt32(1).Value;
}
reader.Close();
}
if (id != -1)
{
string removeQuery = "DELETE FROM data WHERE ID=" + id;
SqlCommand removeCMD = new SqlCommand(removeQuery, conn);
removeCMD.ExecuteNonQuery();
}
}
Этот код приводит к исключению
необработанное исключение типа System.InvalidOperationException произошло в System.Data.dll
с дополнительной информацией о том, что читатель уже связан с этим подключением. Однако, как вы можете видеть, считыватель одновременно закрыт и находится внутри цикла использования, что означает, что он определенно должен быть закрыт. Кто-нибудь знает, как это исправить?
conn
проблема. Вы пытались закрыть соединение после запроса SELECT и открыть для запроса DELETE. - person Harshit   schedule 05.08.2015