注册 登录
编程论坛 J2EE论坛

[求助]为什么这个程序只能显示第四个文本框的数据

信飞鸟123 发布于 2007-06-28 20:34, 559 次点击

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>插入数据</title>
</head>

<body bgcolor=pink>
<font size=1>
<%
String number=request.getParameter("number");
if(number==null)
{number="";
}
byte b[]=number.getBytes("ISO-8859-1");
number=new String(b);

String name=request.getParameter("name");
if(name==null)
{name="";
}
byte c[]=name.getBytes("ISO-8859-1");
name=new String(c);

String m=request.getParameter("math");
if(m==null)
{m="-100";}

String e=request.getParameter("english");
if(e==null)
{e="-100";}

String p=request.getParameter("physics");
if(p==null)
{p="-100";}

Connection con=null;
java.sql.Statement sql=null;
ResultSet rs=null;

try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException event){out.print(event);}

try {con=DriverManager.getConnection("jdbc:odbc:sun","sa","");

sql=con.createStatement();

String condition="insert into student values"+"("+"'"+number+", '"+name+","+m+","+e+","+p+")";
sql.executeUpdate(condition);
%>

<p>更新后的表的记录:
<%
rs=sql.executeQuery("select * from student ");
out.print("<Table border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=100>"+"数学成绩");
out.print("<TH width=100>"+"英语成绩");
out.print("<TH width=100>"+"物理成绩");
out.print("</TR>");

while(rs.next())
{
out.print("<tr>");
String n=rs.getString(1);
out.print("<td>"+n+"</td>");
String xing=rs.getString(2);
out.print("<td>"+xing+"</td>");
int math=rs.getInt("数学成绩");
out.print("<td>"+math+"<td>");
int english=rs.getInt("英语成绩");
out.print("<td>"+english+"<td>");
int physics=rs.getInt("物理成绩");
out.print("<td>"+physics+"<td>");

out.print("</tr>");
}
out.print("</table>");
con.close();
}
catch(SQLException event){out.print(e);}
%>

</font>
</body>
</html>
帮我看看,怎么改正,谢谢

6 回复
#2
信飞鸟1232007-06-28 21:26

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>插入数据</title>
</head>

<body bgcolor=pink>
<font size=1>
<%
String number=request.getParameter("number");
if(number==null)
{number="";
}
byte b[]=number.getBytes("ISO-8859-1");
number=new String(b);

String name=request.getParameter("name");
if(name==null)
{name="";
}
byte c[]=name.getBytes("ISO-8859-1");
name=new String(c);

String m=request.getParameter("math");
if(m==null)
{m="-100";}

String e=request.getParameter("english");
if(e==null)
{e="-100";}

String p=request.getParameter("physics");
if(p==null)
{p="-100";}

Connection con=null;
java.sql.Statement sql=null;
ResultSet rs=null;

try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException event){out.print(event);}

try {con=DriverManager.getConnection("jdbc:odbc:sun","sa","");

sql=con.createStatement();

String condition=("insert into student values"+"("+"'"+number+"', '"+name+",'"+m+","+e+","+p+")");
sql.executeUpdate(condition);
%>

<p>更新后的表的记录:
<%
rs=sql.executeQuery("select * from student ");
out.print("<Table border>");
out.print("<TR>");
out.print("<TH width=100>"+"学号");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=100>"+"数学成绩");
out.print("<TH width=100>"+"英语成绩");
out.print("<TH width=100>"+"物理成绩");
out.print("</TR>");

while(rs.next())
{
out.print("<tr>");
String n=rs.getString(1);
out.print("<td>"+n+"</td>");
String xing=rs.getString(2);
out.print("<td>"+xing+"</td>");
int math=rs.getInt("数学成绩");
out.print("<td>"+math+"<td>");
int english=rs.getInt("英语成绩");
out.print("<td>"+english+"<td>");
int physics=rs.getInt("物理成绩");
out.print("<td>"+physics+"<td>");

out.print("</tr>");
}
out.print("</table>");
con.close();
}
catch(SQLException e){out.print(e);}
%>

</font>
</body>
</html>

改为这样的话,就提示catch(SQLException e){out.print(e);}
已在此方法中定义了e

#3
风月_无边2007-06-28 22:01
是不是你的数据库存在问题,有数据吗
#4
信飞鸟1232007-06-28 22:28
有啊,就是添加数据有错误,查询和删除都可以
#5
风月_无边2007-06-29 09:00
字段数目是否正确,类型?
#6
LLAITT13142007-06-29 09:12
int math=rs.getInt("数学成绩");
out.print("<td>"+math+"<td>");
int english=rs.getInt("英语成绩");
out.print("<td>"+english+"<td>");
int physics=rs.getInt("物理成绩");
out.print("<td>"+physics+"<td>");
把你的HTML格式如数正确
#7
a2762024602007-06-29 09:23
String condition=("insert into student values"+"("+"'"+number+"', '"+name+",'"+m+","+e+","+p+")");
你这条插入语句为什么 要用括号都括起来呢?
要是说只获得了一个 文本框里面的内容 是不是都写在一个<form></from>里面了 你获得以后为什么不用out.println检测一下呢 应该能看出是哪有问题
看了看你代码也没啥问题 最好不数据库的查询和连接语句什么的封装到bean里面
1