各位高手帮帮忙,程序无错却不通!

pz2002 2002-04-22 09:24:38
各位高手:
我有一个程序怎么也调不通,想请各位帮帮忙。
<html>
<head>
<title>添加购物车</title>
<link href="web/css/style1.css" rel="stylesheet" type="text/css">
<!--@import "css/cssset.css";-->
</head>
<body bgcolor="#FFFFFF">
<%@ page import="java.sql.*" %>
<jsp:useBean id="db" scope="page" class="opendb.opendb"/>
<div align="center"><%@ page import="buyList.buyList"%>
</div>
<div align="center"><%
String b_id=request.getParameter("b_id");
String id=(String)session.getValue("id");
String name="";
String price="";
String sql="select name,price from book where";
sql=sql+"b_id="+b_id;
ResultSet rs=db.executeQuery(sql);
//从数据库中读出该书的价格和书名
if(rs.next())
{
name=rs.getString("name");
price=rs.getString("price");
}
//新建myList对象保存该书的信息
buyList myList=new buyList();
myList.bname=name;
myList.b_id=Integer.parseInt(b_id);
myList.price=Integer.parseInt(price);
myList.id=id;
myList.number=1;
boolean listFlag=true;
//读取原购物车信息
Vector shop=(Vector)session.getValue("shop");
if(shop==null)
{
//如果原购物车为空,则新建购物车
shop=new Vector();
}
else
{
//原购物车不为空的情况
for (int i=0;i<shop.size();i++)
{
//如果该书已经在购物车内,则只把数目加1,不增加项目 buyList list=(buyList) shop.elementAt(i);
if(list.b_id==myList.b_id)
{
list.number++;
shop.setElementAt(list,i);
listFlag=false;
}
}
}
if(listFlag)shop.addElement(myList);
session.putValue("shop",shop);
//购物车添加完毕
rs.close();
%>
<b><font size="4" color="#FF0033">您选购的图书已经成功地添加到购物车中!</font></b><br>
<br>
<a href="JavaScript:window.close()">关闭窗口</a>|
<a href="list.jsp" target="_blank" onclick="JavaScript:window.close()">查看购物车
</a></div>
</body>
</html>

系统总是提示说list找不到,以下是我的buyList程序
package buyList;
public class buyList
{
public String bname;
public int b_id;
public int price;
public int number;
public String id;
}
请各位高手帮帮忙,待我解决之后,必定高分相赠!
...全文
25 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stupidball 2002-04-23
where后面一定要有空格!
回复
stupidball 2002-04-23
sql语句:
String sql="select name,price from book where";
sql=sql+"b_id="+b_id;
改为:

String sql="select name,price from book where ";
sql=sql+"b_id='"+b_id+"'";

回复
pz2002 2002-04-23
当我不用bean调用opendb,把程序改为:
<html>
<head>
<title>添加购物车</title>
</head>
<%@ page contentType="text/html;charset=gb2312"%>
<style type="text/css">
<!--@import "css/cssset.css";-->
</style>
<body bgcolor="#FFFFFF">
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="buyList.buyList"%>
<%
String b_id=request.getParameter("b_id");
String name="";
String price="";
String sql="select name,price from book where";
sql=sql+"b_id="+b_id;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:bookshop";
Connection con=DriverManager.getConnection(url,"pz","123");
Statement statement=con.createStatement();
ResultSet result=statement.executeQuery(sql);
//从数据库中读出该书的价格和书名
if(result.next())
{
name=result.getString("name");
price=result.getString("price");
}
//新建myList对象保存该书的信息
buyList myList=new buyList();
myList.bname=name;
myList.b_id=Integer.parseInt(b_id);
myList.price=Integer.parseInt(price);
myList.id="Null";
myList.number=1;
boolean listFlag=true;
//读取原购物车信息
Vector shop=(Vector)session.getValue("shop");
if(shop==null)
{
//如果原购物车为空,则新建购物车
shop=new Vector();
}
else
{
//原购物车不为空的情况
for (int i=0;i<shop.size();i++)
{
//如果该书已经在购物车内,则只把数目加1,不增加项目
buyList list=(buyList)shop.elementAt(i);
if(list.b_id==myList.b_id)
{
list.number++;
shop.setElementAt(list,i);
listFlag=false;
}
}
}
if(listFlag)shop.addElement(myList);
session.putValue("shop",shop);
//购物车添加完毕
result.close();
%>
<b><font size="4" color="#FF0033">您选购的图书已经成功地添加到购物车中!</font></b><br>
<br>
<a href="JavaScript:window.close()">关闭窗口</a>|
<a href="list.jsp" target="_blank" onclick="JavaScript:window.close()">查看购物车
</a></div>
<%
con.close();
}catch(Exception e)
{out.println(e);}
%>
</body>
</html>


系统又提示说:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '=' 附近有语法错误。
这是怎么回事呀?
回复
pz2002 2002-04-23
我用的系统是:jdk1.2.2和Resin2.0.5,数据库是server2000,操作系统是:win2000server,但是在调用opendb的时候,系统会出现奇怪的提示:
当我用beans的时候,程序没错了,却蹦出来一堆莫名其妙的提示:
java.lang.NullPointerException
at _add__jsp._jspService(Compiled Code)
at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
at com.caucho.jsp.Page.subservice(Page.java:485)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:179)
at com.caucho.server.http.Invocation.service(Invocation.java:288)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
at com.caucho.server.http.ServletServer.serviceTop(ServletServer.java:937)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:213)
at com.caucho.server.http.HttpRequest.handleConnection(Compiled Code)
at com.caucho.server.TcpConnection.run(Compiled Code)
at java.lang.Thread.run(Thread.java:479)

回复
stupidball 2002-04-22
这里://如果该书已经在购物车内,则只把数目加1,不增加项目 buyList list=(buyList) shop.elementAt(i);
是不是注释下去了?将buyList换一行,我刚刚调了一下,没问题了!
回复
dylanwolf 2002-04-22
说明你的系统,用的什么服务器, 你把这些 bean放在那里,等等!
回复
wjfxiao 2002-04-22
你把list的定义注释掉了!
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告