我有一个方法,需要将名称,pageSize和pageNumber传递给SQL字符串,但是在传递所有参数之后,在“ total”变量处出现以下错误错误:
System.ObjectDisposedException:阅读器已被处置;不能使用其他方法。在消耗完所有数据ObjectDisposed_ObjectName_Name
之后,可能会发生这种情况
public Pagination<Boats> GetAll(string name, int pageSize, int pageNumber)
{
var cn = DbContext.Database.Connection;
var sql = @"SELECT *
FROM (
SELECT ROWNUM rnum, b.*
FROM (
SELECT *
FROM RDVE.BOATS
WHERE (:Name IS NULL OR RDVE.BOATS.NOME LIKE :Name+ '%')
)b
)
WHERE RNUM between :PageSize * (:PageNumber - 1) AND
(:PageSize * :PageNumber)";
var multi = cn.QueryMultiple(sql, new { Name = name, PageSize = pageSize, PageNumber = pageNumber });
var Boats= multi.Read<Boats>();
var total = multi.Read<int>().FirstOrDefault();
var list = new Pagination<Boats>()
{
List = Boats,
Count = total
};
return list ;
}
我不明白为什么会收到此错误,显然是将参数传递给了SQL字符串,但是当对“总计”变量中的值求和时,就会出现此错误。
注意:我的数据库为空,只有表