關於asp.netmysql分頁的信息

本文目錄一覽:

ASP.net怎麼連接mysql資料庫進行數據操作?

1、資源:Mysql-5.6.24-win32、VS2013、mysql-connector-odbc-5.3.6-win32;

2、ODBC下載:在Mysql官網可下載Mysql ODBC,注意,什麼版本的mysql配什麼版本的ODBC,很重要!

下載後雙擊安裝。

3、創建ODBC數據源:

打開  控制面板-系統和安全-管理工具-ODBC數據源(32位)

因為我安裝的mysql資料庫是32位的,所以選擇32位的數據源:

彈出數據源管理程序(32位):

選擇用戶DNS,點擊右邊的「添加」按鈕,選擇MySQL ODBC 5.3 ANSI Driver-完成:

彈出界面如圖所示:Data Source Name可自己隨意填寫;TCP/IP Server如果是本機資料庫的話一般填localhost;Port埠號不要改;User填root,Password填你登陸自己的mysql時所用的密碼;Database選擇一個你已經建好的mysql資料庫,比如我選擇資料庫XYDdata;最後點擊Text測試,彈出連接成功的對話框(這一步如果出錯,沒有彈出連接成功的對話框,那麼極有可能是因為下載的Mysql ODBC與Mysql的版本不相匹配)。

選擇系統DNS,點擊添加,步驟、填法同上,不再細講。

完成後,如圖所示,用戶DNS和系統DNS都添加了名為Lizer的數據源:

ODBC數據源創建成功。

4、打開VS2013,新建一個ASP.net應用程序:

5、添加一個Web窗體WebForm1.aspx:

6、使用ASP數據綁定控制項:

以GridView控制項為例:

GridView以表的形式顯示數據,並提供對列進行排序、分頁、翻閱數據及編輯或刪除單個記錄的功能。

使用示例:

視圖-工具箱-數據,雙擊GridView將空間拖到頁面中:

在「設計」中點擊右邊的小箭頭,彈出GridView任務,選擇數據源選擇「新建數據源」:

彈出:

選擇「SQL資料庫」,點擊「新建連接」:

如下圖所示,數據源選擇ODBC數據源;數據源選擇我們前面新建的數據源」Lizer”;登陸信息中用戶名密碼即為我們在創建數據源「Lizer”時填寫的User和Password:

點擊確定,再點擊下一步:

輸入SQL語句 select * from Book(Book是資料庫中的一個表):

點擊 下一步-完成。

軟體會為我們自動生成代碼:

行程序,表Book中的數據以表格的形式呈現出來:

asp.net sql語句分頁

一般的分頁查詢不是用做的,通常分頁是select top 10 from StudentPayment where SpId not in (select top 10 SpId from StudentPayment ORDER BY SpId)

要做出分頁效果第一個10代表頁尺寸就是每一頁顯示多少條,第二個代表頁尺寸乘以頁數減一,如pageSize代表頁尺寸,num代表多少頁,.net里拼接sql語句為string sql=”select top “+pageSize+” from StudentPayment where SpId not in (select top “+pageSize*(num-1)+” SpId from StudentPayment ORDER BY SpId)”

其實sql server資料庫還有另外幾種分頁方式,如像oracle里的序號類似的sql里也有,這種是最簡單的

asp.net如何分頁顯示數據

public static ListBooks getBooksByPageIndex(int pageIndex,int pageSize)

{

//pageIndex當前頁數,從1開始,pageSize每頁顯示的行數

//bookscount是當前頁數前查詢過的記錄,如,當前第三頁,每頁5條記錄,則bookscount就為10,也就是說,從10以後開始查詢11-15的記錄

int bookscount=(pageIndex-1)*pageSize;

string sql=”select top “+pageSize+” * from TBL_Books where bookId not in(select top “+bookscount+” bookId from TBL_Books order by bookId) order by bookId”;

…..

//從TBL_Books表中查詢top pageSize 的記錄,條件是bookId不等於當前頁數前查詢過的數據,order By可要可不要

}

關於asp.net應用程序存儲過程做高效分頁

ASP.net 的DataGrid 控制項的內置分頁功能一直不被看好,原因是它先把所有數據從資料庫讀出來再進行分頁。在數據量很大的情況下,用它內置的分頁功能被認為幾乎是不可能的事。對海量數據的讀取和分頁,大家會通過自定義分頁來實現。其核心技術是SQL語句的設計。一般有三種方案:

方案一:(利用SQL的游標存儲過程分頁)

create procedure XiaoZhengGe

@sqlstr nvarchar(4000), –查詢字元串

@currentpage int, –第N頁

@pagesize int –每頁行數

as

set nocount on

declare @P1 int, –P1是游標的id

@rowcount int

exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output

select ceiling(1.0*@rowcount/@pagesize) as 總頁數–,@rowcount as 總行數,@currentpage as 當前頁

set @currentpage=(@currentpage-1)*@pagesize+1

exec sp_cursorfetch @P1,16,@currentpage,@pagesize

exec sp_cursorclose @P1

set nocount off

————————————-

方案二:(利用SELECT TOP和Not In分頁)

SELECT TOP 頁大小 *

FROM TestTable

WHERE (ID NOT IN

(SELECT TOP 頁大小*頁數 id

FROM 表

ORDER BY id))

ORDER BY ID

————————————-

分頁方案三:(利用SELECT TOP和IDMAX(id)分頁)

SELECT TOP 頁大小 *

FROM TestTable

WHERE (ID

(SELECT MAX(id)

FROM (SELECT TOP 頁大小*頁數 id

FROM 表

ORDER BY id) AS T))

ORDER BY ID

有網友通過SQL 查詢分析器進行比較,得出結論:

方案三(利用IDMAX(id))效率最高;

方案二(利用Not In) 效率次之;

方案一(利用SQL的游標存儲過程分頁)最為通用,但效率最差。

事實果真是這樣嗎?這三種方案就是比DataGrid 控制項的內置分頁功能好嗎?我以前用Access做程序時發現Not in語句效率很低的呀?於是決定親自試一試。

裝SQL有點麻煩,就用 Access 吧,方案一用存儲過程分頁沒有試驗。

用Access新建一Book.mdb文件,打開後建一表mytable,加入五個欄位:ID,name,author,islend,username。建好表後向內灌入一定數量的記錄,以方案二、方案三和DataGrid 控制項的內置分頁功能分別寫一個 .aspx 文件,同時寫一 .asp 文件進行比較。

測試條件:P4 2.4G,256MDDR,WindowsXP,IIS,每頁20條記錄。

IDMAX(id)語句:string sqlstr=”Select Top “+PageSize+” * from mytable where(ID (select MAX(ID) from(select top “+(PageSize*CurrentPage)+” ID from mytable order by ID asc))) order by ID asc”;

Not In語句:string sqlstr=”Select Top “+PageSize+” * from mytable where ID not in(select top “+(PageSize*CurrentPage)+” ID from mytable order by ID asc) order by ID asc”;

運行結果如下:

方案 記錄條數及換頁時間

100萬 276000 10萬 1000

IDMAX(ID) 16秒 3秒 1秒 1秒

not in 未打開網頁 未打開網頁 未打開網頁 1秒

DataGrid內置分頁 未打開網頁 23秒 5秒 1秒

asp分頁 未打開網頁 3秒 1秒 1秒

通過比較可見,DataGrid 控制項的內置分頁功能的確不怎麼樣,但比起一直比較流行的 Not in 語句分頁是好多了,至少在20多萬條記錄的情況下能顯示網頁。 有人說asp.net 因為是編譯執行,運行速度上比asp要快。通過測試沒發現快多少。

另:據說 DataList 控制項比 DataGrid 控制項數據顯示性能方面要好一些,可能是真的。我對這兩個控制項也分別進行了測試,沒感覺有多大差異,至少在27萬條記錄的情況下覺不出來。

難道想像和現實之間的差距真的這麼大嗎?

原文地址:

asp.net 怎麼分頁

當GridView中顯示的記錄很多的時候,可以通過GridView的分頁功能來分頁顯示這些記錄。如果GridView是直接綁定資料庫,則很簡單:只要點擊GridView空間左上角的小三角形,再彈出的選項中,將”啟動分頁”打上勾即可。  

如果是用代碼實現,則需要這麼做:  

1、允許分頁:設置AllowPaging=True;  

2、設置GridView屬性欄中PagerSetting里的一些屬性中,定義分頁的樣式;  

3、數據部署:將數據顯示到GridView上;  

4、加入相關事件:PageIndexChanged()、PageIndexChanging();  

5、如果要添加分頁碼顯示,即顯示當前在第幾頁,還需添加DataBound()事件。

例子:

功能:GridView分頁使用圖片按鈕並添加分頁碼顯示。

      默認情況下GridView的分頁按鈕如果以圖片來顯示就無法顯示文字,這樣就無法知道當前所在的頁數。於是,添加分頁代碼顯示就可以顯示所在分頁的索引數字了。

01using System;

02using System.Data;03using System.Configuration;04using System.Collections;05using System.Web;06using System.Web.Security;07using System.Web.UI;08using System.Web.UI.WebControls;09using System.Web.UI.WebControls.WebParts;10using System.Web.UI.HtmlControls;11using System.Data.SqlClient;1213public partial class GridView_Page : System.Web.UI.Page14{15    protected void Page_Load(object sender, EventArgs e)16    {17        //設置分頁的圖片按鈕,這些都可以在控制項的屬性表上的pagersetting里設置18        if (!IsPostBack)19        {20            GridView1.Caption = “這是一個GridView的小實驗”;  21                  //Caption屬性類似於表名,顯示在控制項的正上方。22            GridView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast;23            GridView1.PagerSettings.NextPageImageUrl = “img/next.gif”;24            GridView1.PagerSettings.PreviousPageImageUrl = “img/pre.gif”;25            GridView1.PagerSettings.FirstPageImageUrl = “img/first.gif”;26            GridView1.PagerSettings.LastPageImageUrl = “img/last.gif”;27            GridView1.PageSize = 10;  //每頁最多顯示10條記錄;28            BindData();29        }30    }31    private void BindData()32    {33        //將數據部署到GridView中34        string Constr = “server=localhost; uid=sa;pwd=123456;database=NorthWind”;35        string sqlstr = “select * from products”;36        SqlConnection con = new SqlConnection(Constr);37        SqlDataAdapter ad = new SqlDataAdapter(sqlstr, con);38        DataSet ds = new DataSet();39        ad.Fill(ds);40        GridView1.DataSource = ds;41        GridView1.DataBind();42    }43    protected void GridView1_PageIndexChanged(object sender, EventArgs e)44    {45        //進行分頁之後,重新部署數據46        BindData();47    }48    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)49    {50        //分頁完成之前51        GridView1.PageIndex = e.NewPageIndex;52    }53    protected void GridView1_DataBound(object sender, EventArgs e)54    {55        //添加分頁碼顯示56        GridViewRow bottomPagerRow = GridView1.BottomPagerRow;57        Label bottomLabel = new Label();58        bottomLabel.Text = “目前所在分頁:(” + (GridView1.PageIndex + 1) + “/” + GridView1.PageCount + “)”;59        bottomPagerRow.Cells[0].Controls.Add(bottomLabel);60    }61}

如何使用asp.net代碼實現分頁功能 連接到sql server 資料庫中

ASP.NET

的話,

直接拖個

gridview

datasource,

數據綁定

一下。

控制項上面設置個

要分頁。

一行代碼也不用寫啊。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/239350.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:16
下一篇 2024-12-12 12:16

相關推薦

  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • uniapp分頁第二次請求用法介紹

    本文將從多個方面對uniapp分頁第二次請求進行詳細闡述,並給出對應的代碼示例。 一、請求參數的構造 在進行分頁請求時,需要傳遞的參數體包含當前頁碼以及每頁顯示的數據量。對於第二次…

    編程 2025-04-27

發表回復

登錄後才能評論