21 个解决方案
#1
贴出原码
#2
那就是沒有返回咯。。
也有可能你Catch Exception,
但是沒有處理或打印
exception.getMessage();
也有可能你Catch Exception,
但是沒有處理或打印
exception.getMessage();
#3
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>获取提交方式</title>
</head>
<body>
<% //获取提交的排序方式
String name=request.getParameter("R");
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
String number,xingming;
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int math,english,physics;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e) { }
try{con=DriverManager.getConnection("jdbc:odbc:fqcheng","sa","");
sql=con.createStatement();
String condition="select * from students order by"+name;//name为什么会是空值?
rs=sql.executeQuery(condition);
out.println("sdfsfsfs");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"数学成绩");
out.print("<TH width=50>"+"英语成绩");
out.print("<TH width=50>"+"物理成绩");
out.print("<th width=50>"+"总成绩");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD>"+number+"</td>");
xingming=rs.getString(2);
out.print("<TD>"+xingming+"</td>");
math=rs.getInt("数学成绩");
out.print("<TD>"+math+"</td>");
english=rs.getInt("英语成绩");
out.print("<TD>"+english+"</td>");
physics=rs.getInt("物理成绩");
out.print("<TD>"+physics+"</td>");
int total=math+english+physics;
out.print("<th>"+total+"</th>");
out.print("</TR>");
}
out.print("</Table>");
con.close();
}
catch(SQLException e) { }
%>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>获取提交方式</title>
</head>
<body>
<% //获取提交的排序方式
String name=request.getParameter("R");
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
String number,xingming;
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int math,english,physics;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e) { }
try{con=DriverManager.getConnection("jdbc:odbc:fqcheng","sa","");
sql=con.createStatement();
String condition="select * from students order by"+name;//name为什么会是空值?
rs=sql.executeQuery(condition);
out.println("sdfsfsfs");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"数学成绩");
out.print("<TH width=50>"+"英语成绩");
out.print("<TH width=50>"+"物理成绩");
out.print("<th width=50>"+"总成绩");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD>"+number+"</td>");
xingming=rs.getString(2);
out.print("<TD>"+xingming+"</td>");
math=rs.getInt("数学成绩");
out.print("<TD>"+math+"</td>");
english=rs.getInt("英语成绩");
out.print("<TD>"+english+"</td>");
physics=rs.getInt("物理成绩");
out.print("<TD>"+physics+"</td>");
int total=math+english+physics;
out.print("<th>"+total+"</th>");
out.print("</TR>");
}
out.print("</Table>");
con.close();
}
catch(SQLException e) { }
%>
</body>
</html>
#4
if(name!=null || !name.equals(""))
{
}
{
}
#5
错了,不好意思。应该是:
if(name!=null && !name.equals(""))
{
}
if(name!=null && !name.equals(""))
{
}
#6
我按你的方法试了,还不行
if(name!=null && !name.equals(""))
{
}
String condition="select * from students order by"+name;//name为什么会是空值?
if(name!=null && !name.equals(""))
{
}
String condition="select * from students order by"+name;//name为什么会是空值?
#7
异常里面没有任何处理 出问题了当然是空白 把异常打出来 一看就知道了
#8
谢谢关照!!菜鸟还要问一个问题,怎样才能把异常打出来?
#9
把<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>这行中去掉 errorPage=""试试看
#10
catch(Exception e)
{
out.print(e.toString());
}
{
out.print(e.toString());
}
#11
catch(Exception e)
{
out.print("e:"+e);
}
{
out.print("e:"+e);
}
#12
有以下错误提示:
SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
#13
实在是太感谢各位的关照了!!!!!
按弯豆的做,有以下提示:
e:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
按弯豆的做,有以下提示:
e:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
#14
String condition="select * from students order by"+name;//name为什么会是空值?
这句错了 order by 后面接的是数据表里面的字段名
假如你的表students 的学生姓名字段是name的话
直接这样写 String condition="select * from students order by name";
这句错了 order by 后面接的是数据表里面的字段名
假如你的表students 的学生姓名字段是name的话
直接这样写 String condition="select * from students order by name";
#15
你是不是想提取在上一页面所填name的信息,如果是这句就不对了。
String condition="select * from students order by"+name;//name为什么会是空值?
改为:String condition="select * from students where name1='"+name+"'";
name1是数据库中的字段名;
如果name为空也就是上一页面的name属性值没有传过来;得到一个null;
在传递参数时做一个判断,如果为空就返回去原来的页面或提示信息。
String condition="select * from students order by"+name;//name为什么会是空值?
改为:String condition="select * from students where name1='"+name+"'";
name1是数据库中的字段名;
如果name为空也就是上一页面的name属性值没有传过来;得到一个null;
在传递参数时做一个判断,如果为空就返回去原来的页面或提示信息。
#16
name是我定义的一个字符串变量,用来获取数据表里面的字段名,以便可以按姓氏排序、总分排序、英语成绩排序。
String name=request.getParameter("R");
以下是另一页面的表单代码
<form name="form" method="post" action="byname1.jsp">
<input type="radio" name="R" value="姓名">按姓氏查询
<input type="radio" name="R" value="数学成绩+英语成绩+物理成绩">按总分排序
<input type="radio" name="R" value="英语成绩">按英语成绩排序
<input type="submit" name="g" value="提交">
</form>
String name=request.getParameter("R");
以下是另一页面的表单代码
<form name="form" method="post" action="byname1.jsp">
<input type="radio" name="R" value="姓名">按姓氏查询
<input type="radio" name="R" value="数学成绩+英语成绩+物理成绩">按总分排序
<input type="radio" name="R" value="英语成绩">按英语成绩排序
<input type="submit" name="g" value="提交">
</form>
#17
String name=request.getParameter("R");
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
上面的这样写会不会更好:
String name;
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写是没问题的,但是我看到你提交过来的R的value是"姓名"、"数学成绩+英语成绩+物理成绩"等这些东西,它是无论如何也不可能在数据库中找到这样的列的,你可以将vlaue写成假设你的"姓名"在students表中是"xm"这个字段,就写成"xm",“总分”是"zf",就写成"zf",这样的!
上面是这个问题的关键,下面的语句我不知道写得对不对
然后再下面的查询中:
String condition="select * from students order by 'name'";
这样应该ok了!祝你好运!
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
上面的这样写会不会更好:
String name;
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写是没问题的,但是我看到你提交过来的R的value是"姓名"、"数学成绩+英语成绩+物理成绩"等这些东西,它是无论如何也不可能在数据库中找到这样的列的,你可以将vlaue写成假设你的"姓名"在students表中是"xm"这个字段,就写成"xm",“总分”是"zf",就写成"zf",这样的!
上面是这个问题的关键,下面的语句我不知道写得对不对
然后再下面的查询中:
String condition="select * from students order by 'name'";
这样应该ok了!祝你好运!
#18
查询语句可能错误
因为name是变量,所以应该写成:
String condition="select * from students order by '"+name+"'";
这样应该ok了!祝你好运!
因为name是变量,所以应该写成:
String condition="select * from students order by '"+name+"'";
这样应该ok了!祝你好运!
#19
String name;
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写的话只是适合Strig类型的,如果分数是int,或者float等类型就需要转换
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写的话只是适合Strig类型的,如果分数是int,或者float等类型就需要转换
#20
你们真好,我是这个论坛的新手。谢谢各位!!谢谢!!现在问题已解决。
#21
大家都有功劳,寄生的世界功劳最大,只改String condition="select * from students order by 'name'";就行了。已经显示出来了,现在又有新的问题要问大家。显示之后并不按姓氏排序或总分排序或英语成绩排序。20分送给谁?
#1
贴出原码
#2
那就是沒有返回咯。。
也有可能你Catch Exception,
但是沒有處理或打印
exception.getMessage();
也有可能你Catch Exception,
但是沒有處理或打印
exception.getMessage();
#3
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>获取提交方式</title>
</head>
<body>
<% //获取提交的排序方式
String name=request.getParameter("R");
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
String number,xingming;
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int math,english,physics;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e) { }
try{con=DriverManager.getConnection("jdbc:odbc:fqcheng","sa","");
sql=con.createStatement();
String condition="select * from students order by"+name;//name为什么会是空值?
rs=sql.executeQuery(condition);
out.println("sdfsfsfs");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"数学成绩");
out.print("<TH width=50>"+"英语成绩");
out.print("<TH width=50>"+"物理成绩");
out.print("<th width=50>"+"总成绩");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD>"+number+"</td>");
xingming=rs.getString(2);
out.print("<TD>"+xingming+"</td>");
math=rs.getInt("数学成绩");
out.print("<TD>"+math+"</td>");
english=rs.getInt("英语成绩");
out.print("<TD>"+english+"</td>");
physics=rs.getInt("物理成绩");
out.print("<TD>"+physics+"</td>");
int total=math+english+physics;
out.print("<th>"+total+"</th>");
out.print("</TR>");
}
out.print("</Table>");
con.close();
}
catch(SQLException e) { }
%>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>获取提交方式</title>
</head>
<body>
<% //获取提交的排序方式
String name=request.getParameter("R");
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
String number,xingming;
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int math,english,physics;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e) { }
try{con=DriverManager.getConnection("jdbc:odbc:fqcheng","sa","");
sql=con.createStatement();
String condition="select * from students order by"+name;//name为什么会是空值?
rs=sql.executeQuery(condition);
out.println("sdfsfsfs");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"数学成绩");
out.print("<TH width=50>"+"英语成绩");
out.print("<TH width=50>"+"物理成绩");
out.print("<th width=50>"+"总成绩");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD>"+number+"</td>");
xingming=rs.getString(2);
out.print("<TD>"+xingming+"</td>");
math=rs.getInt("数学成绩");
out.print("<TD>"+math+"</td>");
english=rs.getInt("英语成绩");
out.print("<TD>"+english+"</td>");
physics=rs.getInt("物理成绩");
out.print("<TD>"+physics+"</td>");
int total=math+english+physics;
out.print("<th>"+total+"</th>");
out.print("</TR>");
}
out.print("</Table>");
con.close();
}
catch(SQLException e) { }
%>
</body>
</html>
#4
if(name!=null || !name.equals(""))
{
}
{
}
#5
错了,不好意思。应该是:
if(name!=null && !name.equals(""))
{
}
if(name!=null && !name.equals(""))
{
}
#6
我按你的方法试了,还不行
if(name!=null && !name.equals(""))
{
}
String condition="select * from students order by"+name;//name为什么会是空值?
if(name!=null && !name.equals(""))
{
}
String condition="select * from students order by"+name;//name为什么会是空值?
#7
异常里面没有任何处理 出问题了当然是空白 把异常打出来 一看就知道了
#8
谢谢关照!!菜鸟还要问一个问题,怎样才能把异常打出来?
#9
把<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>这行中去掉 errorPage=""试试看
#10
catch(Exception e)
{
out.print(e.toString());
}
{
out.print(e.toString());
}
#11
catch(Exception e)
{
out.print("e:"+e);
}
{
out.print("e:"+e);
}
#12
有以下错误提示:
SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
#13
实在是太感谢各位的关照了!!!!!
按弯豆的做,有以下提示:
e:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
按弯豆的做,有以下提示:
e:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
#14
String condition="select * from students order by"+name;//name为什么会是空值?
这句错了 order by 后面接的是数据表里面的字段名
假如你的表students 的学生姓名字段是name的话
直接这样写 String condition="select * from students order by name";
这句错了 order by 后面接的是数据表里面的字段名
假如你的表students 的学生姓名字段是name的话
直接这样写 String condition="select * from students order by name";
#15
你是不是想提取在上一页面所填name的信息,如果是这句就不对了。
String condition="select * from students order by"+name;//name为什么会是空值?
改为:String condition="select * from students where name1='"+name+"'";
name1是数据库中的字段名;
如果name为空也就是上一页面的name属性值没有传过来;得到一个null;
在传递参数时做一个判断,如果为空就返回去原来的页面或提示信息。
String condition="select * from students order by"+name;//name为什么会是空值?
改为:String condition="select * from students where name1='"+name+"'";
name1是数据库中的字段名;
如果name为空也就是上一页面的name属性值没有传过来;得到一个null;
在传递参数时做一个判断,如果为空就返回去原来的页面或提示信息。
#16
name是我定义的一个字符串变量,用来获取数据表里面的字段名,以便可以按姓氏排序、总分排序、英语成绩排序。
String name=request.getParameter("R");
以下是另一页面的表单代码
<form name="form" method="post" action="byname1.jsp">
<input type="radio" name="R" value="姓名">按姓氏查询
<input type="radio" name="R" value="数学成绩+英语成绩+物理成绩">按总分排序
<input type="radio" name="R" value="英语成绩">按英语成绩排序
<input type="submit" name="g" value="提交">
</form>
String name=request.getParameter("R");
以下是另一页面的表单代码
<form name="form" method="post" action="byname1.jsp">
<input type="radio" name="R" value="姓名">按姓氏查询
<input type="radio" name="R" value="数学成绩+英语成绩+物理成绩">按总分排序
<input type="radio" name="R" value="英语成绩">按英语成绩排序
<input type="submit" name="g" value="提交">
</form>
#17
String name=request.getParameter("R");
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
上面的这样写会不会更好:
String name;
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写是没问题的,但是我看到你提交过来的R的value是"姓名"、"数学成绩+英语成绩+物理成绩"等这些东西,它是无论如何也不可能在数据库中找到这样的列的,你可以将vlaue写成假设你的"姓名"在students表中是"xm"这个字段,就写成"xm",“总分”是"zf",就写成"zf",这样的!
上面是这个问题的关键,下面的语句我不知道写得对不对
然后再下面的查询中:
String condition="select * from students order by 'name'";
这样应该ok了!祝你好运!
if(name==null)
{name="";}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
上面的这样写会不会更好:
String name;
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写是没问题的,但是我看到你提交过来的R的value是"姓名"、"数学成绩+英语成绩+物理成绩"等这些东西,它是无论如何也不可能在数据库中找到这样的列的,你可以将vlaue写成假设你的"姓名"在students表中是"xm"这个字段,就写成"xm",“总分”是"zf",就写成"zf",这样的!
上面是这个问题的关键,下面的语句我不知道写得对不对
然后再下面的查询中:
String condition="select * from students order by 'name'";
这样应该ok了!祝你好运!
#18
查询语句可能错误
因为name是变量,所以应该写成:
String condition="select * from students order by '"+name+"'";
这样应该ok了!祝你好运!
因为name是变量,所以应该写成:
String condition="select * from students order by '"+name+"'";
这样应该ok了!祝你好运!
#19
String name;
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写的话只是适合Strig类型的,如果分数是int,或者float等类型就需要转换
if(request.getParameter("R")!=null)
name=request.getParameter("R").trim();
这样写的话只是适合Strig类型的,如果分数是int,或者float等类型就需要转换
#20
你们真好,我是这个论坛的新手。谢谢各位!!谢谢!!现在问题已解决。
#21
大家都有功劳,寄生的世界功劳最大,只改String condition="select * from students order by 'name'";就行了。已经显示出来了,现在又有新的问题要问大家。显示之后并不按姓氏排序或总分排序或英语成绩排序。20分送给谁?