PDA

View Full Version : سوال: صفحه بندی (دیتابیس ACCESS)



bftarane
جمعه 12 مهر 1392, 14:40 عصر
من سعی کردم با استفاده از این سه تا لینک صفحه بندی انجام بدم. البته با بانک اطلاعاتی Access دارم کار می کنم.
http://www.jertix.org/en/blog/programming/implementation-of-sql-pagination-with-ms-access.html
http://stackoverflow.com/questions/1900635/how-do-i-implement-pagination-in-sql-for-ms-access
aspsnippets.com/Articles/Custom-Paging-in-ASP.Net-GridView-using-SQL-Server-Stored-Procedure.aspx (http://barnamenevis.org/aspsnippets.com/Articles/Custom-Paging-in-ASP.Net-GridView-using-SQL-Server-Stored-Procedure.aspx)

البته این کار رو تونستم با استفاده از Sql Server انجام بدم به شکل زیر.

using (SqlCommand cmd = new SqlCommand("Select @RecordCount= Count(*) From tbl_product SELECT * FROM (SELECT Top (@PageSize) sub.* FROM (SELECT TOP ((@RecordCount) - (((@PageIndex) - 1) * (@PageSize))) tbl_product.* FROM tbl_product ORDER BY tbl_product.pd_id Desc) sub ORDER BY sub.pd_id Asc) subOrdered ORDER BY subOrdered.pd_id", con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
cmd.Parameters.AddWithValue("@PageSize",3);
cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4);
cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;
cmd.Parameters.AddWithValue("@cat_id", Request.QueryString["pcId"]);
con.Open();
IDataReader idr = cmd.ExecuteReader();
lst.DataSource = idr;
lst.DataBind();
idr.Close();
con.Close();
int recordCount = Convert.ToInt32(cmd.Parameters["@RecordCount"].Value);
this.PopulatePager(recordCount, pageIndex);
}
ولی متأسفانه این طور که متوجه شدم در Access به Top clause نمیشه پارامتر داد بنابراین به مشکل خوردم و همینطور انگار نمیشه دو تا سلکت رو پشت سر هم نوشت. بنابراین به مشکل خوردم.
از کسانی که صفحه بندی با دیتابیس اکسس رو انجام دادن خواهش می کنم روش خودشون رو اینجا توضیح بدن.