高手帮我看看这个问题

windinn 2004-11-22 11:41:42
stmt = con.prepareStatement("select top ? * from v_userandtopic where LMID=? order by CreateTime desc,ReNum desc");
stmt.setInt(1,page.getPageEndRow()-page.getPageStartRow()+1);
stmt.setInt(2,new Integer(lmid).intValue());
报错,只要把第一个?用具体的数字代替就可以通过:
stmt = con.prepareStatement("select top 4 * from v_userandtopic where LMID=? order by CreateTime desc,ReNum desc");
//stmt.setInt(1,page.getPageEndRow()-page.getPageStartRow()+1);
stmt.setInt(1,new Integer(lmid).intValue());
是不是不该这么传参数,那要怎么做
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerrykey 2004-11-22
  • 打赏
  • 举报
回复
楼上的两位正解!
tom2005 2004-11-22
  • 打赏
  • 举报
回复
set方法一般是设置字段的值
这样感觉不行

可以用变量代替?
hendy 2004-11-22
  • 打赏
  • 举报
回复
你这样试一试看看行不行:
stmt = con.prepareStatement("select top" + (page.getPageEndRow()-page.getPageStartRow()+1) +" * from v_userandtopic where LMID=? order by CreateTime desc,ReNum desc");
stmt.setInt(1,new Integer(lmid).intValue());

windinn 2004-11-22
  • 打赏
  • 举报
回复
楼上的,这种写法本身就提示有错误哦......
VRC 2004-11-22
  • 打赏
  • 举报
回复
你这样试一试看看行不行:
stmt = con.prepareStatement("select top" + ? +" * from v_userandtopic where LMID=? order by CreateTime desc,ReNum desc");
stmt.setInt(1,page.getPageEndRow()-page.getPageStartRow()+1);
stmt.setInt(2,new Integer(lmid).intValue());
windinn 2004-11-22
  • 打赏
  • 举报
回复
是的,楼上的三位正解

81,094

社区成员

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

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