首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

一条sql在sqlserver上运作能找出3条数据,但在java程序里运行后只能找出两条数据

2013-03-26 
一条sql在sqlserver上运行能找出3条数据,但在java程序里运行后只能找出两条数据,传入的是sql,经调试rs.nex

一条sql在sqlserver上运行能找出3条数据,但在java程序里运行后只能找出两条数据,
传入的是sql,经调试rs.next()少循环了一次,求解

/*
 * 
 * 查询sql处理
 */
public Vector<Hashtable<String, String>> getAllMenuName(String sql){
Connection conn=this.getConn();
PreparedStatement st=null;
ResultSet rs=null;
Vector<Hashtable<String, String>> vec=new Vector<Hashtable<String, String>>();
try {
st=conn.prepareStatement(sql);
rs=st.executeQuery();
if(rs.next()){
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next()){
Hashtable<String, String> resultht=new Hashtable<String, String>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
resultht.put(rsmd.getColumnName(i),""+rs.getString(i));
}
vec.add(resultht);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("size:"+vec.size()+"  sql:"+sql);
return vec;
}
[解决办法]
程序设计逻辑错误,你这句话:
  if(rs.next()){
就已经跳到第一行了,所以后面的:
  while(rs.next()){ 
就只能从第二行以后才开始了。
[解决办法]

引用:
程序设计逻辑错误,你这句话:
  if(rs.next()){
就已经跳到第一行了,所以后面的:
  while(rs.next()){ 
就只能从第二行以后才开始了。

yes

热点排行