注册 登录
编程论坛 J2EE论坛

[求助]数据库记录删除不了-->LouisXIV转移

fengxfu 发布于 2006-08-04 01:43, 1184 次点击

大家帮我看一下啊,我写了两个文件.1.jsp显示数据库中的记录并提交要删除的数据.
2.jsp是的作用是删除数据,并显示删除后的记录.
运行时tomcat 不报错.两个页面里的数据库记录都能显示.问题是删除不了.数据记录前后就没有变化.

我把两个文件传上来,大家帮我看一下吧,谢谢了....

1.jsp
---------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*" %>
<html>
<body bgcolor=pink >
<font size=3>
<form action="160.jsp" method=post>
<p>输入删记录的学号:
<input type="text" name="number">
<p>
<input type="submit" name="b" value="提交">

<p>数据库删除前的数据记录时:
<%
int number;
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{
out.print("加载驱动失败!");
}
try{
con=DriverManager.getConnection("jdbc:odbc:chenfeng"," "," ");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM biao1");
out.print("<table border=1>");
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("<tr>");
while(rs.next())
{
out.print("<tr>");
out.print("<td>"+rs.getInt(1)+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getInt(3)+"</td>");
out.print("<td>"+rs.getInt(4)+"</td>");
out.print("<td>"+rs.getInt(5)+"</td>");
out.print("</tr>");
}
out.print("</table>");
con.close();
}
catch(SQLException e1)
{
out.print(e1);
}
%>
</form>
</font>
</body>
</html>

15 回复
#2
fengxfu2006-08-04 01:46

更正一下,上边的<form action="160.jsp" method=post>写错了.应该是2.jsp
以下是2.jsp
---------------------------------------------------------------------
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*" %>
<html>
<body bgcolor=pink >
<font size=3>
<% String number=request.getParameter("number");
if(number==null)
{
number=" ";
}

Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException event)
{
out.print("加载驱动失败!");
}
try{
con=DriverManager.getConnection("jdbc:odbc:chenfeng"," "," ");
sql=con.createStatement();
String del="delete from biao1 where '学号'"+"="+"'"+number+"' ";

sql.executeUpdate(del);
%>
<p>添加新记录后的表:
<%
rs=sql.executeQuery("select * FROM biao1 ");
out.print("<table border=1>");
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("<tr>");
while(rs.next())
{
out.print("<tr>");
out.print("<td>"+rs.getInt(1)+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getInt(3)+"</td>");
out.print("<td>"+rs.getInt(4)+"</td>");
out.print("<td>"+rs.getInt(5)+"</td>");
out.print("</tr>");
}
out.print("</table>");
con.close();
}
catch(SQLException event)
{
out.print(event);
}
%>

</font>

</body>
</html>

#3
fengxfu2006-08-04 01:46
大家帮我看看,谢谢了.
#4
球球2006-08-04 10:26
String del="delete from biao1 where 学号="+number;  

[此贴子已经被作者于2006-8-4 10:44:44编辑过]


#5
球球2006-08-04 10:33
我想你应该是想删除哪个点哪个,但String number=request.getParameter("number");的number从哪获取呀?
算了,还是等你来了再说吧,我一个人说也没意思!!!有很多问题.
顺便说下楼主,这是JSP的问题,最好是贴在JSP区.

[此贴子已经被作者于2006-8-4 11:37:12编辑过]

#6
球球2006-08-04 11:03
既然:1.jsp显示数据库中的记录并提交要删除的数据.2.jsp的作用是删除,那在2.jsp中删除成功后直接提交到1.jsp中不就行了?干嘛还在2.jsp的后面又作一次显示数据库中的记录???
#7
fengxfu2006-08-04 14:12

其实记录在那显示都无所谓.关键是现在删不了数据. 是不是删除语句有问题呢?? 可是如果有问题的话,tomcat为什么不报错呢???

#8
fengxfu2006-08-04 14:14
以下是引用球球在2006-8-4 10:33:14的发言:
我想你应该是想删除哪个点哪个,但String number=request.getParameter("number");的number从哪获取呀?
算了,还是等你来了再说吧,我一个人说也没意思!!!有很多问题.
顺便说下楼主,这是JSP的问题,最好是贴在JSP区.

number是从1.jsp的表单中获取的.

#9
fengxfu2006-08-04 14:18

我的QQ 275923233

#10
球球2006-08-04 14:42
在1.jsp中每项做个删除的链接(用循环),链接到2.jsp,然后在1.jsp中获取数据表中while(rs.next()&i<=20){
i++ ;
String id = rs.getString("学号") ;
.............
当点击哪项删除时提交到2.jsp并把id做为参数也传过去,也就是href="2.jsp?id=<%=id%>"
然后在2.jsp中获得String id = request.getParameter("id") ;
然后String del="delete from biao1 where 学号="+id;
............
并response.sendRedirect("1.jsp");
#11
fengxfu2006-08-04 15:11

我试一下

#12
fengxfu2006-08-04 15:22
谢谢大侠.现在好了.
我把上边的删除语句改了一下,现在能正确删除了.
把String del="delete from biao1 where '学号'"+"="+"'"+number+"' ";
改为String del="delete from biao1 where 学号="+number; 就可以正确删除了.可是我还不明白.上边句运行时为什么不报错呢??
#13
球球2006-08-04 15:46
哦,眼神不行,你的number是手动输入的,这样麻烦!
#14
fengxfu2006-08-04 23:51
  这话怎么讲,有点不明白了.         
#15
zehua2006-08-05 13:10
语法不错,所以无报错,你把这句话
String del="delete from biao1 where '学号'"+"="+"'"+number+"' ";
改为
String del="delete from biao1 where 学号"+"="+"number";
或者String del="delete from biao1 where 学号="+number;
包可以

sql里面的语句错误,你的sql语句执行实际上是这样的(delete from biao1 where '学号'='number'),但是实际上正确的是这样(delete from biao1 where 学号=number),
字符串连接语法无错,所以无报错
#16
fengxfu2006-08-05 14:11
1