读书人

高效分页中因DataTable在几百万数据时

发布时间: 2012-05-21 18:04:41 作者: rapoo

高效分页中因DataTable在几百万数据时速度太慢现在想换成SqlDataReader,出了点小问题请高手帮忙看看
高效分页中因DataTable在几百万数据时速度太慢现在想换成SqlDataReader,出了点小问题请高手帮忙看看

之前用的是DataTable,开始还好好的,现在数据达到几百万后,点开页面超级慢,现在想换成DataReader的方法。
-----------------------------------------------
出现错误如下:
'flyso_listpage' 附近有语法错误。
-----------------------------------------------
//SQL助手类
SqlHelper.cs

C# code
 public static SqlDataReader dataReader(string storedProcName, SqlParameter[] pars)        {            SqlCommand command = null;            //using (SqlConnection connection = new SqlConnection(ConnectionString))            SqlConnection connection = new SqlConnection(ConnectionString);            {                connection.Open();                command = new SqlCommand(storedProcName, connection);                if (pars != null)                {                    command.Parameters.AddRange(pars);                }            }            return command.ExecuteReader(CommandBehavior.CloseConnection);        }


//数据层
//翻页列表
listpage_DAL.cs
C# code
        public SqlDataReader Pagerlist(FlysoPager Pager)        {            SqlParameter[] pars = new SqlParameter[9];            pars[0] = new SqlParameter("@sTable", SqlDbType.VarChar, 30);            pars[0].Value = Pager.tablename;            pars[1] = new SqlParameter("@sField", SqlDbType.VarChar, 200);            pars[1].Value = Pager.Fields;            pars[2] = new SqlParameter("@sCondition", SqlDbType.VarChar, 500);            pars[2].Value = Pager.Condition;            pars[3] = new SqlParameter("@sPkey", SqlDbType.VarChar, 150);            pars[3].Value = Pager.MKey;            pars[4] = new SqlParameter("@sOrder", SqlDbType.VarChar, 50);            pars[4].Value = Pager.Order;            pars[5] = new SqlParameter("@iPageCurr", SqlDbType.Int);            pars[5].Value = Pager.intPageNo;            pars[6] = new SqlParameter("@iPageSize", SqlDbType.Int);            pars[6].Value = Pager.intPageSize;            pars[7] = new SqlParameter("@iRecordCount", SqlDbType.Int);            pars[7].Value = Pager.RecordCount;            pars[8] = new SqlParameter("RowCount", SqlDbType.Int);            pars[8].Direction = ParameterDirection.ReturnValue;            return SqlHelper.dataReader("flyso_listpage",pars);             }


页面层:
listpage.aspx
C# code
....Pager.RecordCount = new FlysoPager_DAL().TotalRecord(Pager);list.DataSource = new FlysoPager_DAL().Pagerlist(Pager);list.DataBind();


请高手帮忙看一下

[解决办法]
command.CommandType = CommandType.StoredProcedure; 没写啊

读书人网 >asp.net

热点推荐