D apper를 사용하는 동안 판독기가 닫혀있을 때 Read를 호출하려는 잘못된 시도

asp.net-mvc c# dapper sqldatareader

문제

dapper 프레임 워크를 사용하여 테이블에서 레코드를 검색하는 동안 아래 오류가 나타납니다.

판독기가 닫혀있을 때 Read 호출을 잘못 시도했습니다.

아래 코드는 내 코드입니다.

var sql = "SELECT * FROM LMS_QuestionCategory";
                var rows = new List<Dictionary<string, int>>();

                using (IDbConnection dbConnection = Connection)
                {
                    var reader = dbConnection.ExecuteReader(sql);

                    while (reader.Read())
                    {
                        var dict = new Dictionary<string, int>();

                        for (var i = 0; i < reader.FieldCount; i++)
                        {
                            dict[reader.GetName(i)] = reader.GetInt32(i);
                        }

                        rows.Add(dict);
                    }
                }

왜이 오류가 발생합니까?

수락 된 답변

연결을 열어야합니다.

using (IDbConnection dbConnection = Connection)
{
   dbConnection.Open() //<--open the connection
   var reader = dbConnection.ExecuteReader(sql);
    ...

인기 답변

내 매우 구체적인 경우에는, 내가 선택에 대한 CommandDefinition을 사용하고 그것은 참조 된 오류를 던지고있다 :

CommandDefinition queryDefinition = _queryBuilder.UpdateQuery(_dbConn, _transaction, collectionName, item);

await QueryAsync<T>(CommandDefinition);

나는 다음과 같이 그것을 바꿨다 :

await QueryAsync<T>("SELECT * FROM table_name",param,null,null, commandType : CommandType.Text);

희망은 누군가에게 도움이됩니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow