asp.net(C#)起名海量数据表高功用分页算法(易亮,不利用存储过程)

3
.将结构test\Test.class剪切到%CATALINA_HOME%\webapps\myapp\WEB-INF\classes下,也虽然是分那多少个test目录到classes目录下,假若classes目录不在,就新建一个。
现在webapps\myapp\WEB-INF\classes下有test\Test.class的文档目录结构

align=”center”><%#DataBinder.Eval(Container.DataItem,”filenames”)%></td>
       <td width=”30%”

当即段话被的servlet这同样段子表明了您若调用的Servlet,而servlet-mapping则是用宣示的servlet“映射”到地方/Test上

海量数据表分页效果又显明)。
   *希望我们与意见、如发免正确的地点为指正。
  */
  public static int Calc()
  {
   int RecordCount = 0;
   SqlCommand MyCmd = new SqlCommand(“select count(*) as co from
redheadedfile”,MyCon());
   SqlDataReader dr = MyCmd.ExecuteReader();
   if(dr.Read())
    RecordCount = Int32.Parse(dr[“co”].ToString());
   MyCmd.Connection.Close();
   return RecordCount;
  }
        //数据库连接语句(从Web.Config中拿走)
  public static SqlConnection MyCon()
  {
   SqlConnection MyConnection = new
SqlConnection(ConfigurationSettings.AppSettings[“DSN”]);
   MyConnection.Open();
   return MyConnection;
  }
       
//对四单按钮(首页、上同样页、下同样页、尾页)重回的CommandName值举行操作
  private void Page_OnClick(object sender, CommandEventArgs e)
  {
   CurrentPage =
(int)ViewState[“PageIndex”];//从ViewState中读取页码值保存到CurrentPage变量中开展参数运

C:\Test>javac TestBean.java

namespace WebApplication6
{
 /// <summary>
 /// WebForm8 底摘要表明。
 /// </summary>
 public class WebForm8 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.LinkButton Fistpage;
  protected System.Web.UI.WebControls.LinkButton Prevpage;
  protected System.Web.UI.WebControls.LinkButton Nextpage;
  protected System.Web.UI.WebControls.LinkButton Lastpage;
  protected System.Web.UI.WebControls.DataList datalist1;
  protected System.Web.UI.WebControls.DropDownList mydroplist;
  protected System.Web.UI.WebControls.Label LPageCount;
  protected System.Web.UI.WebControls.Label LRecordCount;
  protected System.Web.UI.WebControls.Label LCurrentPage;
  protected System.Web.UI.WebControls.TextBox gotoPage;
  const int PageSize=20;//定义每页呈现记录
  int
PageCount,RecCount,CurrentPage,Pages,JumpPage;//定义几独保存分页参数变量
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   if(!IsPostBack)
   {
    RecCount = Calc();//通过Calc()函数获取总记录数
    PageCount = RecCount/PageSize +
OverPage();//总括总页数(加上OverPage()函数避免发生余数造成突显

path=%JAVA_HOME%\bin

    ViewState[“PageCounts”] = RecCount/PageSize –

编纂后的web.xml如下所示,青色为长的始末:


            Pages =
(int)ViewState[“PageCounts”];//从ViewState中读取总页参数运算

2.设置汤姆(Tom)cat后,在自己之微机->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):

<asp:label id=”LRecordCount” Runat=”server”
ForeColor=”#ff0000″></asp:label>记录
    <asp:linkbutton id=”Fistpage” Runat=”server”

1.于是你太熟识的编辑器(指出接纳有语法检查的java
ide)新建一个java程式,文档名为TestBean.java,文档内容如下:

数不完全)

第五步:建立和睦的Bean:

   string cmd = e.CommandName;
   switch(cmd)//筛选CommandName
   {
    case “next”:
     CurrentPage++;
     break;
    case “prev”:
     CurrentPage–;
     break;
    case “last”:
     CurrentPage = Pages;
     break;
    default:
     CurrentPage = 0;
     break;
   }
   ViewState[“PageIndex”] =
CurrentPage;//将运算后的CurrentPage变量再一次保存及ViewState
   TDataBind();//调用数据绑定函数TDataBind()
  }

1.暨汤姆cat的安装目录的webapps目录,可以看出ROOT,examples,
tomcat-docs之类Tomcat自带的底目录;

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必要的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
 
  /// <summary>
  /// 设计器匡助所欲的办法 – 不要动代码编辑器修改
  /// 此措施的情。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Fistpage.Command += new
System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
   this.Prevpage.Command += new
System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
   this.Nextpage.Command += new
System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
   this.Lastpage.Command += new
System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
   this.gotoPage.TextChanged += new
System.EventHandler(this.gotoPage_TextChanged);
   this.Load += new System.EventHandler(this.Page_Load);

那时候假使看到打印出来This is a test
program.的话语表明安装成功了,倘使没有打印出这句话,您得仔细检查一下您的布情况。

MaxLength=”5″ AutoPostBack=”True”></asp:TextBox></div>
  </form>
 </body>
</HTML>
后台代码有如下(webform8.aspx.cs)
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;

javac Test.java

InputPage变量中
     ViewState[“PageIndex”] =
InputPage;//写入InputPage值到ViewState[“PageIndex”]中
     TDataBind();//调用数据绑定函数TDataBind()再次举行数量绑定运算
    }
   }
      //捕获由用户输入不正确数据类型时造成的充足
   catch(Exception exp)
   {
   
Response.Write(“<script>alert(‘”+exp.Message+”‘);location.href=’WebForm8.aspx'</script>”);
   }
  }
 }
}

java Test

Response.Write(“<script>alert(‘页码范围越界!’);location.href=’WebForm8.aspx'</script>”);
    else
    {
     int InputPage = Int32.Parse(gotoPage.Text.ToString()) –
1;//转换用户输入值保存在int型

  

align=”center”><%#DataBinder.Eval(Container.DataItem,”id”)%></td>
      </tr>
     </table>
    </ItemTemplate>
   </asp:datalist>
   <div align=”center”>共<asp:label id=”LPageCount”
Runat=”server” ForeColor=”#ff0000″></asp:label>页/共

老三步:建立友好之jsp app目录:

上一页</asp:linkbutton>    <asp:linkbutton
id=”Nextpage” Runat=”server”

public class Test{
              public static void main(String args[]){
              System.out.println("This is a test program.");
              }
              }

效运算
   Pages =
(int)ViewState[“PageCounts”];//从ViewState中读取总页参数举行按钮失效运算
   //判断五只按钮(首页、上平等页、下一致页、尾页)状态
   if (CurrentPage + 1 > 1)
   {
    Fistpage.Enabled = true;
    Prevpage.Enabled = true;
   }
   else
   {
    Fistpage.Enabled = false;
    Prevpage.Enabled = false;
   }
   if (CurrentPage == Pages)
   {
    Nextpage.Enabled = false;
    Lastpage.Enabled = false;
   }
   else
   {
    Nextpage.Enabled = true;
    Lastpage.Enabled = true;
   }
            //数据绑定到DataList控件
   DataSet ds = new DataSet();
   //要旨SQL语句,举办询问运算(决定了分页的功用:))
   SqlDataAdapter MyAdapter = new SqlDataAdapter(“Select Top
“+PageSize+” * from redheadedfile where id

然后在c:\Test下会发一个编译后的bean文档:TestBean.class

ForeColor=”#ff0000″></asp:label>页    跳页<asp:TextBox
ID=”gotoPage” Runat=”server” Width=”30px”

JAVA_HOME=c:\j2sdk1.4.2

CommandName=”0″>首页</asp:linkbutton>    <asp:linkbutton
id=”Prevpage” Runat=”server” CommandName=”prev”>

CATALINA_BASE=c:\tomcat;

CommandName=”next”>下一页</asp:linkbutton>    <asp:linkbutton
id=”Lastpage” Runat=”server”

C:\Test>javac Test.java

ModPage();//保存总页参数到ViewState(减去ModPage()函数避免SQL语句执行时溢起查询范围,可以就此存储过程分页算法来明当下词)
    ViewState[“PageIndex”] = 0;//保存一个为0的页面索引值到ViewState
    ViewState[“JumpPages”] =
PageCount;//保存PageCount到ViewState,跳页时判断用户输入数是否超页

<?xml version="1.0" encoding="ISO-8859-1"?>
               <!DOCTYPE web-app
              PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
              "http://java.sun.com/dtd/web-app_2_3.dtd">
              
              <web-app>
              <display-name>My Web Application</display-name>
              <description>
              A application for test.
              </description>
              </web-app>

  }
  #endregion
        //跳页代码
  private void gotoPage_TextChanged(object sender, System.EventArgs
e)
  {
   try
   {
    JumpPage =
(int)ViewState[“JumpPages”];//从ViewState中读取可用页数值保存到JumpPage变量中
    //判断用户输入值是否超可用页数范围值
    if(Int32.Parse(gotoPage.Text) > JumpPage
Int32.Parse(gotoPage.Text) <= 0)
    

继而会写一个粗略的java程式来测试J2SDK是否业已安装成功:

码范围
    //显示LPageCount、LRecordCount的状态
    LPageCount.Text = PageCount.ToString();
    LRecordCount.Text = RecCount.ToString();
    //判断跳页文本框失效
    if(RecCount <= 20)
     gotoPage.Enabled = false;
    TDataBind();//调用数据绑定函数TDataBind()举办多少绑定运算
   }
  }
        //统计余页
  public int OverPage()
  {
   int pages = 0;
   if(RecCount%PageSize != 0)
    pages = 1;
   else
    pages = 0;
   return pages;
  }
        //总计余页,制止SQL语句执行时溢起查询范围
  public int ModPage()
  {
   int pages = 0;
   if(RecCount%PageSize == 0 && RecCount != 0)
    pages = 1;
   else
    pages = 0;
   return pages;
  }
        /*
   *测算总记录的静态函数
  
*我在那里运用静态函数的理是:虽然引用的凡静态数据或静态函数,连接器会优化转移代码,去丢动态重定位项(对

 package test;
              public class TestBean{
              private String name = null;
              public TestBean(String strName_p){
              this.name=strName_p;
              }
              public void setName(String strName_p){
              this.name=strName_p;
              }
              public String getName(){
              return this.name;
              }
              }

not in(select top “+PageSize*CurrentPage+” id from redheadedfile order
by id asc) order by id asc”,MyCon());
   MyAdapter.Fill(ds,”news”);
   datalist1.DataSource = ds.Tables[“news”].DefaultView;
   datalist1.DataBind();
   //展现Label控件LCurrentPaget和文本框控件gotoPage状态
   LCurrentPage.Text = (CurrentPage+1).ToString();
   gotoPage.Text = (CurrentPage+1).ToString();
   //释放SqlDataAdapter
   MyAdapter.Dispose();
  }

第二步:安装与布局您的j2sdk和tomcat:

先是成立同张表(要求ID自动编号):
create table redheadedfile(
id int identity(1,1),
filenames nvarchar(20),
senduser nvarchar(20),
primary key(id)
)
然后大家写副50万久记下:
declare @i int
set @i=1
while @i<=500000
begin
    insert into redheadedfile(filenames,senduser)
values(‘我的分页算法’,’陆俊铭’)
    set @i=@i+1
end
GO
从而Microsoft Visual Studio .NET
2003创同张WebForm网页(本人于名webform8.aspx)
前台代码有如下(webform8.aspx):
<%@ Page language=”c#” Codebehind=”WebForm8.aspx.cs”
AutoEventWireup=”false” Inherits=”WebApplication6.WebForm8″ %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” >
<HTML>
 <HEAD>
  <title>WebForm8</title>
  <meta content=”Microsoft Visual Studio .NET 7.1″
name=”GENERATOR”>
  <meta content=”C#” name=”CODE_LANGUAGE”>
  <meta content=”JavaScript” name=”vs_defaultClientScript”>
  <meta content=”http://schemas.microsoft.com/intellisense/ie5
name=”vs_targetSchema”>
 </HEAD>
 <body MS_POSITIONING=”GridLayout”>
  <form id=”Form1″ method=”post” runat=”server”>
   <asp:datalist id=”datalist1″
AlternatingItemStyle-BackColor=”#f3f3f3″ Width=”100%” CellSpacing=”0″
    CellPadding=”0″ Runat=”server”>
    <ItemTemplate>
     <table width=”100%” border=”0″ cellspacing=”0″
cellpadding=”0″>
      <tr>
       <td width=”30%”

及sun官方站点(http://java.sun.com/j2se/1.4.2/download.html)下载j2sdk,注意下载版本为Windows
Offline Installation的SDK,同时最好下载J2SE 1.4.2
Documentation,然后至tomcat官方站点(http://www.apache.org/dist/jakarta/tomcat-4/)下载tomcat(下载最新4.1.x版本的tomcat);

align=”center”><%#DataBinder.Eval(Container.DataItem,”senduser”)%></td>
       <td width=”30%”

就会启动tomcat,在IE中走访http://localhost:8080,假如看到tomcat的欢迎页面的话说明安装成功了。

  private void TDataBind()
  {
   CurrentPage =
(int)ViewState[“PageIndex”];//从ViewState中读取页码值保存到CurrentPage变量中举行按钮失

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar;(Tomcat5.0以上为servlet-api.jar)

CommandName=”last”>尾页</asp:linkbutton>    当前第<asp:label
id=”LCurrentPage” Runat=”server”

5 .好了,启动Tomcat,启动浏览器,输入http://localhost:8080/myapp/Test
假设看到输出This is a servlet test.就表明编写的servlet成功了。

4.WEB-INF产卵新建一个文档web.xml,内容如下:

2 .编译

季步:建立和睦的Servlet:

3 .将TestBean.class文档剪切到
%CATALINA_HOME%\webapps\myapp\WEB-INF\classes\test下,

如此便成功了所有汤姆cat下之jsp、servlet和javabean的配备。接下来要举办的事体就是多看开、多读旁人的好代码,自己多入手写代码以提高自己在立时面研发的力量了。

package test;
              import java.io.IOException;
              import java.io.PrintWriter;
              import javax.servlet.ServletException;
              import javax.servlet.http.HttpServlet;
              import javax.servlet.http.HttpServletRequest;
              import javax.servlet.http.HttpServletResponse;
              public class Test extends HttpServlet {
              protected void doGet(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
              PrintWriter out=response.getWriter();
              out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
              out.flush();
              }
              }

classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定非克少,因为他意味着时路)

1.用你最熟谙的编辑器(建议利用有语法检查的java
ide)新建一个servlet程式,文档名为Test.java,文档内容如下:

行j2sdk和tomcat的装程式,然后依据默认配置举办安装即可。

将Test.java放在c:\test下,使用如下命令编译:

CATALINA_HOME=c:\tomcat;

将方的立段程式保存也文档名为Test.java的文档。

  

6.重启Tomcat

<?xml version="1.0" encoding="ISO-8859-1"?>
              
              <!DOCTYPE web-app
              PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
              "http://java.sun.com/dtd/web-app_2_3.dtd">
              
              <display-name>My Web Application</display-name>
              <description>
              A application for test.
              </description>
              <servlet>
              <servlet-name>Test</servlet-name>
              <display-name>Test</display-name>
              <description>A test Servlet</description>
              <servlet-class>test.Test</servlet-class>
              </servlet>
              <servlet-mapping>
              <servlet-name>Test</servlet-name>
              <url-pattern>/Test</url-pattern>
              </servlet-mapping>
              </web-app>

然后在c:\Test下会来一个编译后底servlet文档:Test.class

第一步:下载j2sdk和tomcat:

3.myapp下新建一个目WEB-INF,注意,目录名称是别轻重缓急写的;

接下来打开命令提醒符窗口,cd到您的Test.java所当目,然后键入下边的吩咐

4 .修改webapps\myapp\WEB-INF\web.xml,添加servlet和servlet-mapping

<%@ page import="test.TestBean" %>
              <html><body><center>
              <%
              TestBean testBean=new TestBean("This is a test java bean.");
              %>
              Java bean name is: <%=testBean.getName()%>
              </center></body></html>
<html><body><center>
              Now time is: <%=new java.util.Date()%>
              </center></body></html>

7.开拓浏览器,输入http://localhost:8080/myapp/index.jsp
看到眼前几天之言语表明就是打响了。

2.每当webapps目录下新建一个索引,起名叫myapp;

留意:修改了web.xml连和新加了class,都使更开汤姆(Tom)cat

然后修改环境变量中之classpath,把tomat安装目录下的common\lib下的servlet.jar追加及classpath中失去,修改后底classpath如下:

5
.好了,重开汤姆cat,启动浏览器,输入http://localhost:8080/myapp/TestBean.jsp
假如看到输出Java bean name is: This is a test java
bean.就表达编写的Bean成功了。

2 .编译

1.装置j2sdk将来,需要安排一下环境变量,在自家之微机->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2):

4 .新建一个TestBean.jsp文档,文档内容吧:

将TestBean.java放在c:\test下,使用如下命令编译:

5.在myapp下新建一个测试的jsp页面,文档名为index.jsp,文档内容如下:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图