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(Productid);
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(Productid);
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是用来连接数据库的,没错的
现在问题是点了表格内容中的删除还是删不掉那一行,请大家帮忙,解决问题后立即给分,我是新手,希望大家赐教
删除</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");
String sql="delete from products where productid='"+id+"'";
stmt.executeUpdate(sql);
执行是否正确估计是id没有值
找一笔productid存在的记录(假设为1000),把
<a href="deletepro_do.jsp"> 改成 <a href="deletepro_do.jsp?Productid=1000">
试试看有没有把productid为1000的记录删除
删除页String id=request.getAttribute(id);
<a href="deletepro_do.jsp"> 改成 <a href="deletepro_do.jsp?Productid=1000">
试试看有没有把productid为1000的记录删除
试了
可以删除
把<a href="deletepro_do.jsp"> 改成
<a href="deletepro_do.jsp?productid=<%=rs.getString("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:130)
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)
改成<a href='deletepro_do.jsp?productid=<%=rs.getString("productid")%>'>
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:131)
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)
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"> 改成: while(rs.next()){
intProductID = rs.getString("productid"); //添加intProductID variable
%>
<tr>
<td bgcolor="#FFDD33"><%=intProductID%></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?productid=<%=intProductID%>">