JSP中连接数据库又出现了问题,向大家请教
(deletepro.jsp):
id   类别     名称 出厂商 价格 描述  删除 (表格字段)
dddd english ddddd dddddd 22.0 ddddd 删除 (表格内容)
isbn-4-6 computer J2EE企业级应用开发 电子工业出版 56.0 还不错 删除 (表格内容)
现在是想点表格内容中的"删除"就可以转向"deletepro_do.jsp"实现删除其一行
比如点第一个表格内容中的删除,则删除id="dddd"的一行,"id"是主键
deletepro.jsp主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="db" scope="page" class="demo.openDB" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>删除商品</title>
<style type="text/css">
<!--
.STYLE2 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br><br><br>
<center>
<font size="+5" face="华文隶书">删除一个商品</font>
</center>
<br><br><br><br>
<center>
  <table bgcolor="#FF6666">
    <tr>
      <td width="100">id</td>
      <td width="100" align="center">类别</td>
      <td width="200" align="center">名称</td>
      <td width="150" align="center">出厂商</td>
      <td width="100" align="center">价格</td>
  <td width="150" align="center">描述</td>
  <td width="50" align="center">删除</td>
    </tr>
    <%
  Connection conn=db.getConnection();
  String sql="select * from products";
  Statement stmt=conn.createStatement();
  ResultSet rs=stmt.executeQuery(sql);
  while(rs.next()){
 %>
    <tr>
      <td bgcolor="#FFDD33"><%=rs.getString("productid")%></td>
      <td bgcolor="#FFFF00"><%=rs.getString("category")%></td>
      <td bgcolor="#99CC00"><%=rs.getString("name")%></td>
      <td bgcolor="#FFCC99"><%=rs.getString("producer")%></td>
  <td bgcolor="#88FFDD"><%=rs.getFloat("price")%></td>
  <td bgcolor="#DDFC88"><%=rs.getString("descn")%></td>
      <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp"> 
删除</a></span></td>
</tr>
    <%}%>
  </table>
  <br>
  <br><br><br>
<a href="goodmain.jsp">返回</a>
</center>
</body>
</html>
deletepro_do.jsp主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="db" scope="page" class="demo.openDB" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>删除商品</title>
<style type="text/css">
<!--
.STYLE2 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br><br><br>
<center>
<font size="+5" face="华文隶书">删除一个商品</font>
</center>
<br><br><br><br>
 <% 
   String id=request.getParameter(Products);
   Connection conn=db.getConnection();
   Statement stmt=conn.createStatement();
   String sql="delete from products where productid='"+id+"'";
   stmt.executeUpdate(sql);
  %>
  <% response.sendRedirect("deletepro.jsp");%>
</body>
</html>
其中的JAVABEAN是用来连接数据库的,没错的
现在问题是点了表格内容中的删除还是删不掉那一行,请大家帮忙,解决问题后立即给分,我是新手,希望大家赐教

解决方案 »

  1.   

    你说的删除是指页面上没有删除还是数据库没有删除?
    如果是数据库没有删除肯定你是的数据库处理程序的问题,如果是页面的话,你需要刷新你的页面,也就是重新从数据库取数据进行显示,当然也可以通过dom对象删除页面上的数据,具体的可以看看下面这篇帖子
    http://community.csdn.net/Expert/TopicView3.asp?id=5452848
      

  2.   

    估计是你删除的SQL条件有问题,建议把那个delete语句写到log中去检查
      

  3.   

    就是数据库里都没有删除呢,我不会用dom对象,可不可以说出一个简单易懂的方法,就是关于传值参数的,现在的问题就是我的"productid"的值传不过来,请大家帮忙出出主意
      

  4.   

    要确保你的 db.getConnection(); 能获得链接 
    要确保你的 String id=request.getParameter(Products);中的id获得有效的值最好先用jcreate什么的 先测试一下
      

  5.   

    你在rs里面取值之后,productid在<td></td>里面name名字是啥?就是你下面写的Products?如果这个是有值的,再考虑你是否将ID的值带到了你deletepro_do.jsp的页面.如果没有,试试下面的方法
    <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp"> 
    这句应该要把你要删除的ID带过去...
    <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp?id="<%=request.getParameter(Products)%>> 
      

  6.   

    看样子你的 request 对象中跟本没有 Products 这个属性啊
      

  7.   

    deletepro.jsp中的<td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp"> 
    删除</a></span></td> 在把请求转向deletepro_do.jsp的时候并没有把要删除的记录的productid 的值放入 request的 Products 属性中
    所以String id=request.getParameter(Products); 提取的是一个无效值 所以操作不成功
    不知道说的对不对
      

  8.   

    不是说的大小写 这个没有关系 只要request中设置了Products这个属性且赋予有效值
      

  9.   

    <a href="deletepro_do.jsp?变量名=变量值"> 
    删除</a>    注意要加上那个?号  这样可以 但不知道变量值的那个地方可不可以用变量
    如果可以就多写一点:变量名=<%=rs.getString("productid")%>
    如果不可以就只能想别的办法了 方法一定是有的
      

  10.   

    恩为还没有执行到下一个 while(rs.next()) 所以rs.getString("productid")是和“删除”是同一行的那条记录的rs.getString("productid")是一样的
      

  11.   

    String id=" "
    <a href="deletepro_do.jsp?id=<%=rs.getString("productid")%>"> 
    是不是这样啊?
    可是好像发生错误了
    还有那个deletepro_do.jsp中该怎么得到这个值啊?
      

  12.   

    <a href="deletepro_do.jsp?id="<%=rs.getString("productid")%>"> 删除</a>
    不知道这样的嵌套行不行 可以的话就在下一个页面deletepro_do.jsp提取id使用
      

  13.   

    不用id直接在那儿写就行了 请求转发以后 这个id会的地址栏中看到
      

  14.   

    转发到deletepro_do.jsp中后使用request可以取到id
      

  15.   

    现在是那个deletepro.jsp
    不可以那样嵌套
      

  16.   

    <a href="deletepro_do.jsp?id=rs.getString("productid")">
    这个样子对不对啊?
    反正没显示错误
    可还是传不过来值
    那个仍然删不掉
      

  17.   

    你在取的时候 要写request.getParameter("id"); 变量名是什么取的时候就写什么
      

  18.   

    <a href=deletepro_do.jsp?id=<%=rs.getString("productid")%>> 删除</a>
    这样就可以了
      

  19.   

    是把“” 去掉吗?
    你可以试试啊 html 的一些嵌套我不太清楚的
      

  20.   

    <a href=deletepro_do.jsp?id=<%=rs.getString("productid")%>> 这样不对啊
      

  21.   

    你可不要 ctrl+c ctrl+v  啊 有时候少个引号 或多个引号都是不行的 看看哪地方不才多试试
      

  22.   

    晕了啊,你根本就没向后台页面提交你需要的id值,当然取不到了。<td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href="deletepro_do.jsp">
    删除</a></span></td>
    改为:
    <td bgcolor="#6633FF" align="center"><span class="STYLE2"><a href='deletepro_do.jsp?productid=<%=rs.getString("productid")%>'>
    删除</a></span></td>然后
    String id=request.getParameter(Productid);
    改为:
    String id=request.getParameter("productid");
      

  23.   

    改了之后出现如下的错误了:
    javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]????????
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.deletepro_jsp._jspService(deletepro_jsp.java:129)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    root cause java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]????????
    sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
    sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
    sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
    sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5699)
    sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
    sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:410)
    org.apache.jsp.deletepro_jsp._jspService(deletepro_jsp.java:110)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
      

  24.   

    你怎么给结了 晕 我不是要你结这个贴 再发一个 问题还没有解决呢!imA(男的不会,会的不男)写的不错
    我给你说的时候是那个引号写的不对这个可能是sql驱动的原因吧
      

  25.   

    说错了
    看看你的jsp:useBean 
    错误可能出在那里
      

  26.   

    你把数据库的操作都写到javabean里就好了
    我现在也在做和你一样的题 现在执行没有错误就是执行后数据加不到数据库里去
    可能是我用的两个bean之间传值有点问题 还在解决中
      

  27.   

    你也不用QQ吗?
    加你QQ不行吗?
      

  28.   

    别说你用的 ACCESS数据库啊 ,这样还要检查权限问题