那就用dataset的cache,读cache中的数据!
解决方案 »
- webconfig问题!
- 不知道下面代码中的Request["u"]是哪里来的
- webconfig中配置身份验证
- 为什么不能显示我要的结果
- 好奇怪的问题啊,还是access数据库显示的问题啊?在线等待,高手帮忙啊!!
- 不是英文,是长长一串标点的换行问题,挺难的
- 怎么添加其他 视频播放 COM控件(media player)太差,很多视频解码不出
- 如何在服务端取得客户端IE浏览器的宽度和高度?
- 試圖運行項目時出錯,無法在Web服務器上啟動調試。Access is denied. 是否希望以後對此項目禁用asp.net頁調試?
- 提交表单的一点问题,请大家看看。困扰很多天了
- 水晶报表发布后,在客户端浏览看不到图标,也无法打印,几天了都搞不定,急啊
- 在线急等,解决马上给分!!
{
……
Cache["dataset"] == testDataSet;
}DataSet newSet = (DataSet)Cache{"dataset"];
2.用自定义分页,分解函数
if (!Page.IsPostBack)
{
SetVirtualItemCount();
OnLoadData();
}public void OnLoadData(Object sender, EventArgs e)
{
grid.DataSource = CreateDataSource(0);
grid.DataBind();
dr.Close();
}public void SetVirtualItemCount()
{
// Set up the connection
String strConn = "DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn = new SqlConnection(strConn); // Set up the command
String strCmd = "SELECT COUNT(*) FROM products";
SqlCommand cmd = new SqlCommand(strCmd, conn);
// Execute the command
conn.Open();
int nItemCount = (int) cmd.ExecuteScalar();
conn.Close(); grid.VirtualItemCount = nItemCount;
return;
}
在Datagird的的事件再做绑定
public void PageIndexChanged(Object sender, DataGridPageChangedEventArgs e)
{
grid.CurrentPageIndex = e.NewPageIndex;
grid.DataSource = CreateDataSource(grid.CurrentPageIndex);
grid.DataBind();
dr.Close();
}
SqlDataReader dr;
private SqlDataReader CreateDataSource(int nPageIndex)
{
// page index is assumed to be 0-based
int nPageSize = grid.PageSize;
int nBaseProductID = nPageSize * nPageIndex;
// Set up the connection
String strConn = "DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn = new SqlConnection(strConn); // Set up the command
String strCmd = "SELECT TOP " + nPageSize + " " +
"productid, productname, quantityperunit, unitsinstock " +
"FROM products " +
"WHERE productid >" + nBaseProductID;
SqlCommand cmd = new SqlCommand(strCmd, conn);
// Execute the command
conn.Open();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
1。一次读出所有数据到DATASET中,然后放到CACHE,每次按所需显示的页页码想DS获取数据
2。多次读取数据库,但每次按分页的页码去获取仅需要显示的数据
用SELECT TOP PAGESIZE COL1 COL2 FROM YOURTABLE WHERE PKID NOT IN (SELECT TOP ROWTOSKIP PKID FROM YOURTABLE ORDERBY 。。)
ORDERBY 。。
可以存数据入缓存
可以序列化存入客户视图
还可以存入Session不过一般要根据数据量的大小进行不不同的取舍~
Cache
Session
ViewState