當前位置:首頁 » 數據倉庫 » aspnet資料庫分頁
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

aspnet資料庫分頁

發布時間: 2023-01-19 23:04:39

1. 誰知道ASP.NET中最好的分頁方法

這個要看你從什麼角度去考慮了.如果你想要最簡的那DataGrid本身的分頁就可以使.如果你考慮性能與頁面樣式,那可以使用第三方專門的分頁控制項,此類控制項很多,如aspnetpaper.其原理應該都是差不多的.

2. 資料庫中有幾萬條數據,怎樣使用aspnetpage分頁控制項結合資料庫分頁讀取呢

可以用存儲過程分頁
/*
函數名稱: GetRecordFromPage
函數功能: 獲取指定頁的數據
參數說明: @tblName 包含數據的表名
@fldName 關鍵欄位名
@PageSize 每頁記錄數
@PageIndex 要獲取的頁碼
@OrderType 排序類型, 0 - 升序, 1 - 降序
@strWhere 查詢條件 (注意: 不要加 where)
*/
CREATE PROCEDURE GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 欄位名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@OrderType bit = 0, -- 設置排序類型, 非 0 值則降序
@strWhere varchar(2000) = '' -- 查詢條件 (注意: 不要加 where)
AS
declare @strsql varchar(6000) -- 主語句
declare @strTmp varchar(1000) -- 臨時變數
declare @strOrder varchar(500) -- 排序類型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where (' + @strWhere + ')'
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
exec (@strSQL)
GO

3. asp.net網站開發一般都用什麼控制項顯示資料庫信息用什麼控制項分頁請詳細說下怎麼分頁最好!謝謝

前台使用DataList、ListView、Repeater 後台一般使用GridView GridView和ListView(VS2008以後才有)都自帶分頁功能 DataList和Repeater需要手動分頁: 分頁方式有很多種 1、SQL語句分頁:就是前台調用時動態傳頁碼 後台拼SQL語句(select top 頁大小 * from 表名 where 主鍵 not in(select top (頁碼-1)*頁大小 主鍵 from 表名)) 2、存儲過程,原理和上面的差不多 3、使用GridView中封裝的PageDataSource(實例化類,取數據源,設置允許分頁、設置分頁大小、最後把數據源指向展示控制項,其實可以和第三方控制項的aspnet分頁控制項配合使用),適用於數據記錄不是太大的時候,因為會把全所記錄都加內存中,數據太大會佔用內存 4、VS2008以後有LINQ,這LINQ的SKIP一樣可以實例。優點:延遲查詢,不用把所有數據全查出來,應用於數據非常多的時候,如果用的是VS2008之前的IDE那麼就用第一、二種方法吧 5、在後台用生成靜態頁的方式,把前台的分頁功能全都生成靜態文件,這樣雖然佔用空間大一些,但速度很快

4. asp.net如何實現多表查詢然後對其進行分頁

你要懂得多表聯查,那我就教你分頁拉:
第一 要用到分頁控制項aspnetPage 示例如下
第二 在數據訪問層添加以下兩個方法
//查詢總記錄數
public static int GetGoodsCount()
{
string sql = "select count(*) from goods ";
return Convert.ToInt32(DBHelp.ExceateScalar(sql,null));
}

//查詢信息
public static List<Goods> GetAllGoods(int startRecordIndex,int pageSize)
{
//row_number()over(order by goodsid)為行號(新的函數)
string sql = "select * from (
select *,row_number()over(order by goodsid) as num from goods) as a
where num between @startIndex and @startIndex+@pageSize-1 ";

SqlParameter[] paras=new SqlParameter[]
{
new SqlParameter("@startIndex",startRecordIndex),
new SqlParameter("@pageSize",pageSize)
};
return ExeceateSelecta(sql,paras);
}

第三步在頁面後台調用,
注意首先要為aspnetPage的屬性pageSize給值,也就是說每頁要顯示信息數量
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
AspNetPager1.RecordCount = GoodsManager.GetGoodsCount();
}
}
//分頁控制項的事件
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
//信息開始的索引StartRecordIndex 信息數量PageSize
List<Goods> list = GoodsManager.GetAllGoods(this.AspNetPager1.StartRecordIndex, AspNetPager1.PageSize);
this.DataList1.DataSource = list;
this.DataList1.DataBind();
}

5. asp.net模糊查詢分頁

//控制項改變時
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
//調用這個方法
//e.NewPageIndex是獲取到當前頁
//PageSize是顯示的條數,在前台已經設置好
DisplayData(e.NewPageIndex, AspNetPager1.PageSize);
}
//查詢按鈕
protected void Button1_Click(object sender, EventArgs e)
{
string a= TextBox1.Text;
NewsInfo dal=new NewsInfo();
List<NewsInfos> li = new List<NewsInfos>();
li = dal.GetLike(a);
Repeater1.DataSource = dal.GetLike(a);
DataBind();
}

原因是你這個 2個事件中都 執行了 你只需要在 AspNetPager1_PageChanging中更改就可以啦