分页难点:能显示第一页,点击下一页时,显示不了。原因是在点击查询按钮时通过 request.getParameter("number")获取输入文本框的查询条件,在点击下一页时丢失了获取的值,就通过链接来传递获取的number,在链接中加入number=<%=strNumber%>,而page=<%=intPage+1%>是用来传递当前的页码值,下一页的链接如下:
查询的数据用表格显示,备注一栏有时数据为空值,空值的单元格会没有边框,查html的规则发现要用空格符占位,符号是 ,于是想读取到数据库的内容,判断一下如果是null,就转换成空格符,
改成: beizhu=(rs.getString(5)==null||rs.getString(5)=="")?" ":rs.getString(5); 还是失败
发现没有成功的地方是因为,在数据库表中,备注一栏有的是确实空的,即为"",经过上面语句的转换,会有一个空格占位;有的单元格内则有一些空格,不是""不会转换,读取之后在html中空格是不会显示的,所以还是显示没有边框的空栏,trim()把空格去掉!
注:bordercolor="#a7a7a7",挺浅的灰色
上面判断了那么多都没有这个顶用
==========下面是代码====================空值显示边框的两种方法都用了====转换空格和画边框=========
<%@ page contentType="text/html;charset=gb2312"%>
<%@page language="java" import="java.sql.*" %>
<%@page language="java" import="java.util.*" %>
<%@page language="java" import="java.lang.*" %>
数据库内容显示
<% //变量声明
Connection conn; //数据库连接对象
Statement stmt; //SQL语句对象
ResultSet rs; //结果集对象
String strCon; //数据库连接字符串
//SQL语句
int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
String strPage;
int i;
//设置一页显示的记录数
intPageSize = 6;
//取得待显示页码
strPage = request.getParameter("page");
if(strPage==null||strPage==""){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
//if(intPage<1) intPage = 1;
}
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://localhost:1433";
String user="sa";
String password="";
//装载JDBC驱动程序
Class.forName(driver);
//设置数据库连接字符串
conn = java.sql.DriverManager.getConnection(url,user,password);
//创建一个可以滚动的只读的SQL语句对象
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql;
String strNumber = request.getParameter("number"); //获取页面传来的号码
//查询的语句
sql = "SELECT * FROM [数据库名].[dbo].[表名] where [haoma] like '%"+strNumber+"%'";
//执行SQL语句并获取结果集
rs = stmt.executeQuery(sql);
//获取记录总数
rs.last();//??光标在最后一行
intRowCount = rs.getRow();//获得当前行号
//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%>
数据库查询
| date |
haoma |
mingcheng |
shuliang |
beizhu |
<%if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
rs.absolute((intPage-1) * intPageSize + 1);
//显示数据
i = 0;
String date,haoma,mingcheng,shuliang,beizhu;
while(i<intPageSize && !rs.isAfterLast()){
date=rs.getString(1).substring(0,10);
haoma=rs.getString(2);
mingcheng=rs.getString(3);
shuliang=rs.getString(4);
beizhu="".equals(rs.getString(5).trim())?" ":rs.getString(5);%>
| <%=date%> |
<%=haoma%> |
<%=mingcheng%> |
<%=shuliang%> |
<%=beizhu%> |
<%rs.next();
i++;
}
}%>
<%//关闭结果集
rs.close();
//关闭SQL语句对象
stmt.close();
//关闭数据库
conn.close();%>
全部评论 (0)