我的数据量很大,大概有上百万条记录,我使用下面代码时程序执行4-5分钟就报不能返回结果的错误,如过换个数据量小的查询同样是这些代码可以正常执行,请问该怎么处理啊,
SqlDataAdapter adapter=new SqlDataAdapter(sql_str,conn);
adapter.SelectCommand.CommandTimeout=1200;
DataSet ds=new DataSet();
adapter.Fill(ds);
if (ds.Tables[0].Rows.Count!=0)
{
PagedDataSource objpds=new PagedDataSource();
objpds.DataSource=ds.Tables[0].DefaultView;
objpds.AllowPaging=true;
objpds.PageSize=30;
int CurPage;
if (Request.QueryString["Page"]!=null)
{
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurPage=1;
}
objpds.CurrentPageIndex=CurPage-1;
lblTotal.Text="Total Page:" + objpds.PageCount;
lblCurrentPage.Text = "Current Page:" + CurPage; lnkFirst.Text = " &nbspFirst &nbsp";
lnkPrev.Text = " &nbspPrev &nbsp";
lnkNext.Text = " &nbspNext &nbsp";
lnkLast.Text = " &nbspLast &nbsp";
if (!objpds.IsFirstPage)
{
lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1&searchsql_str=" + searchsql_str;
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + (CurPage - 1) + "&searchsql_str=" + searchsql_str;
}
if (!objpds.IsLastPage)
{
lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + objpds.PageCount.ToString() + "&searchsql_str=" + searchsql_str;
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString((CurPage + 1)) + "&searchsql_str=" + searchsql_str;
} Repeater1.DataSource = objpds;
Repeater1.DataBind();
}