注册 登录
编程论坛 SQL Server论坛

jdbc带参数查询问题

liuchengwu 发布于 2013-04-09 12:47, 796 次点击

ps=conn.prepareStatement(select top ? * from books);
 ps.setInt(1,10);
 ps.executeQuery();
 ps为PreparedStatement
 为何这样写不对。。。。。将问号改成具体值可以。。。。。
 查询带参数的前多少项该怎样写?求解。。(sqlserver数据库)
7 回复
#2
party6202013-04-09 13:45
ps.setInt(1,10); 这句话什么意思
#3
liuchengwu2013-04-09 18:10
就是设置第一个参数为10,即设置问号的值为10
#4
Aviva_Wang2013-04-09 19:15
回复 楼主 liuchengwu
你这个是java代码吧。
sql 语句中  select top num 字段 from 表
#5
highness2013-04-14 22:50
为什么你不能根据ID查询?如果ID是int 类型  那么你可以直接将查询语句修改成
select * from books where ID<10

或者你直接将参数传入语句中,带参数的方法你会写吧?  
public static void f(int numb){
    ps=conn.prepareStatement(select top '"+ numb+" ' * from books);
    rs=ps.ps.executeQuery();
    while(rs.next()){
        System.out.println(rs.getString(1));
    }
}
#6
party6202013-04-15 09:36
回复 5楼 highness
不能用ID,ID是自动增加的,有种情况就是数据有删除的情况,如ID是1,5,6,7,10,13,14,15,17
用select * from 表 where ID>10 得到的并不是10条记录
#7
highness2013-04-15 18:50
回复 6楼 party620
有没有发现你的语句没有打上引号,你再试试
#8
highness2013-04-15 18:52
回复 5楼 highness
ps=conn.prepareStatement(“select top '"+ numb+" ' * from books”);  反正这个语句应该是没问题
1