急,jsp参数传递问题,我搞了一天没搞出来了,求救!!!

lovemory 2003-12-04 07:33:39
我的jsp程序大概如下:
<jsp:useBean id="productIn",scope="page",class="water.mainclass"/>

<%! String ProductID,ProductName;ResultSet rs;int i;%>
<%
rs=productIn.executeQuery("select * from table1");
while(rs.next()) {++i};rs.close();
ProductID=request.getParameter("ID");
ProductName=request.getParameter("Name");
%>
<%! String sql="insert into table1(10,‘m100’,‘light’);%> //问题发生处!
<% productIn.executeInsert(sql)%>

以上程序设置能把值10,‘m100’,‘light’插入到数据库中。

但。。。我的要 求是把变量i,ProductID,ProductName插入到数据库中。这应该怎么办呢?
...全文
58 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wisikey 2003-12-04
  • 打赏
  • 举报
回复
<%
String sql="insert into table1 values(?,?,?);
productIn = connection.prepareStatement(SQL);
productIn.setString(1, i);
productIn.setString(2, ProductID);
productIn.setString(3, ProductName);
productIn.executeQuery();
%>
这个土方法总应该可以吧?
lovemory 2003-12-04
  • 打赏
  • 举报
回复
我有<%= %>语句显示所有的参数,表明获得参数正确。
单引号也是英文的。
字符长度也小于数据库设定的长度。

我更改下面的语句,看看只用一个变量id,能不能插入,发现还是不能,也没有错误提示。
<%! String sql="insert into table1 values("+id+",‘m100’,‘light’)";%>
<% productIn.executeUpdate(sql)%>
luckygjl 2003-12-04
  • 打赏
  • 举报
回复
刚才看错了,如果你取到的productName的字符长度超出数据库字段的长度会出现这个问题
luckygjl 2003-12-04
  • 打赏
  • 举报
回复
我觉得是你的单引号写成中文的单引号了,试试吧什么情况都可能出现
elyesse 2003-12-04
  • 打赏
  • 举报
回复
是不是参数就没有取到,可以用测试语句看一下参数到底取没取到。
fantasyCoder 2003-12-04
  • 打赏
  • 举报
回复
StringBuffer sql=new StringBuffer();
sql.append("insert into table1(id,productID,productName)");
sql.append("values('"+id+"','"+productID+"','"+productName+"')");
productIn.executeUpdate(sql.toString());
lovemory 2003-12-04
  • 打赏
  • 举报
回复
<%! String sql="insert into table1(id,productID,productName) values(13,'mz101b','clock')";%>
<% productIn.executeUpdate(sql)%>
可以插入数据库。
但变量值插入就不行。
<%! String sql="insert into table1(id,productID,productName) values("+id+",'"+ProductID+"','"+ProductName+"')";%>
<% productIn.executeUpdate(sql)%>
改为这样后,网页没有也没有错误提示。但数据库没有插入值。

sammy791010 2003-12-04
  • 打赏
  • 举报
回复
顶,在取参数的时候应该进行格式转化:
ProducID = (String)request.getParameter("ID");
ProductName = (String)request.getParameter("Name");
yupingping 2003-12-04
  • 打赏
  • 举报
回复
up
ladofwind 2003-12-04
  • 打赏
  • 举报
回复
表面确实没看出错误换方法试试吧,
sql="insert into table1(fieldd1,field2,field3) values(val1,val2,val3)";
把字段都写上看看,
还有就是你提交之后最好转向sendRedirect或者javascript提示成功然后返回,
要不然刷新当然重新执行一遍自然i会成倍增加了!
lovemory 2003-12-04
  • 打赏
  • 举报
回复
是应该这样,我打错了
<%! String sql="insert into table1 values(10,‘m100’,‘light’);%> //问题发生处!
<% productIn.executeUpdate(sql)%>
maweihua 2003-12-04
  • 打赏
  • 举报
回复
这句
<%! String sql="insert into table1(10,‘m100’,‘light’);%> //问题发生处!
<% productIn.executeInsert(sql)%>
是不是应该为:
<%! String sql="insert into table1 values(10,‘m100’,‘light’);%> //问题发生处!
<% productIn.executeUpdate(sql)%>

lovemory 2003-12-04
  • 打赏
  • 举报
回复
我试了,String sql="insert into table1("+id+",'"+ProductID+"','"+ProductName+"')";
jsp 网页没有错误提示信息。我打开数据库,刷新看一下,但发现并没有插入值。

还有一个问题就是当我刷新页面的时候,变量i会成倍的加。
glucose 2003-12-04
  • 打赏
  • 举报
回复
这样不用commit可以自动提交吗?
追求自由 2003-12-04
  • 打赏
  • 举报
回复
同上,其实就是字符串串接,但要注意字符型数据插入时要用''包起来。
xuewuz 2003-12-04
  • 打赏
  • 举报
回复
String sql="insert into table1("+id+",'"+ProductID+"','"+ProductName+"')";
productIn.executeUpdate(sql);
crabyan 2003-12-04
  • 打赏
  • 举报
回复
easy
wxdcngc 2003-12-04
  • 打赏
  • 举报
回复
增长见识,各位高手都很厉害。
yellowzhong 2003-12-04
  • 打赏
  • 举报
回复
‘全角变半角 '
selajune 2003-12-04
  • 打赏
  • 举报
回复
你看看你最早的原码中哪有ID这个变量?
引用你的话:
我更改下面的语句,看看只用一个变量id,能不能插入,发现还是不能,也没有错误提示。
<%! String sql="insert into table1 values("+id+",‘m100’,‘light’)";%>
<% productIn.executeUpdate(sql)%>

如果你换成下面的话呢?
<%! String sql="insert into table1 values(13,'"+ProductID+"',‘light’)";%>
<% productIn.executeUpdate(sql)%>
加载更多回复(1)

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧