首页 > 编程知识 正文

关于asp.netmysql分页的信息

时间:2023-12-24 12:05:37 阅读:320654 作者:HATO

本文目录一览:

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,

数据绑定

一下。

控件上面设置个

要分页。

一行代码也不用写啊。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。