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是用来连接数据库的,没错的
现在问题是点了表格内容中的删除还是删不掉那一行,请大家帮忙,解决问题后立即给分,我是新手,希望大家赐教
(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是用来连接数据库的,没错的
现在问题是点了表格内容中的删除还是删不掉那一行,请大家帮忙,解决问题后立即给分,我是新手,希望大家赐教
如果是数据库没有删除肯定你是的数据库处理程序的问题,如果是页面的话,你需要刷新你的页面,也就是重新从数据库取数据进行显示,当然也可以通过dom对象删除页面上的数据,具体的可以看看下面这篇帖子
http://community.csdn.net/Expert/TopicView3.asp?id=5452848
要确保你的 String id=request.getParameter(Products);中的id获得有效的值最好先用jcreate什么的 先测试一下
<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)%>>
删除</a></span></td> 在把请求转向deletepro_do.jsp的时候并没有把要删除的记录的productid 的值放入 request的 Products 属性中
所以String id=request.getParameter(Products); 提取的是一个无效值 所以操作不成功
不知道说的对不对
删除</a> 注意要加上那个?号 这样可以 但不知道变量值的那个地方可不可以用变量
如果可以就多写一点:变量名=<%=rs.getString("productid")%>
如果不可以就只能想别的办法了 方法一定是有的
<a href="deletepro_do.jsp?id=<%=rs.getString("productid")%>">
是不是这样啊?
可是好像发生错误了
还有那个deletepro_do.jsp中该怎么得到这个值啊?
不知道这样的嵌套行不行 可以的话就在下一个页面deletepro_do.jsp提取id使用
不可以那样嵌套
这个样子对不对啊?
反正没显示错误
可还是传不过来值
那个仍然删不掉
这样就可以了
你可以试试啊 html 的一些嵌套我不太清楚的
删除</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");
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)
我给你说的时候是那个引号写的不对这个可能是sql驱动的原因吧
看看你的jsp:useBean
错误可能出在那里
我现在也在做和你一样的题 现在执行没有错误就是执行后数据加不到数据库里去
可能是我用的两个bean之间传值有点问题 还在解决中
加你QQ不行吗?