Неверная попытка вызвать FieldCount, когда читатель закрыт

Ошибка выше возникает, когда я пытаюсь сделать dataReader.Read для данных, полученных из базы данных. Я знаю, что там две строки, так что это не так, потому что никаких данных на самом деле не существует.

Может ли это быть CommandBehavior.CloseConnection, вызывая проблему? Мне сказали, что вы должны были сделать это сразу после ExecuteReader? Это правильно?

        try
        {
            _connection.Open();
            using (_connection)
            {
                SqlCommand command = new SqlCommand("SELECT * FROM Structure", _connection);
                SqlDataReader dataReader = command.ExecuteReader(CommandBehavior.CloseConnection);

                if (dataReader == null) return null;

                var newData = new List<Structure>();
                while (dataReader.Read())
                {
                    var entity = new Structure
                    {
                        Id = (int)dataReader["StructureID"],
                        Path = (string)dataReader["Path"],
                        PathLevel = (string)dataReader["PathLevel"],
                        Description = (string)dataReader["Description"]
                    };

                    newData.Add(entity);
                }
                dataReader.Close();

                return newData;
            }
        }
        catch (SqlException ex)
        {
            AddError(new ErrorModel("An SqlException error has occured whilst trying to return descendants", ErrorHelper.ErrorTypes.Critical, ex));
            return null;
        }
        catch (Exception ex)
        {
            AddError(new ErrorModel("An error has occured whilst trying to return descendants", ErrorHelper.ErrorTypes.Critical, ex));
            return null;
        }
        finally
        {
            _connection.Close();
        }
    }

Заранее благодарю за любую помощь.

Клэр

Ответы на вопрос(4)

Ваш ответ на вопрос