ResultSet返回记录问题 谢谢各位看看 直接执行你得SQL看看有没有记录 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先你的第二条语句比第一条语句多了一个判断条件。yfjg='是' 会不会是,你的数据库根本就没有满足条件的记录呀。请查证先!---------------------如果还有问题,说清:应该显示多少数据。实际显示了多少数据。你的数据库表的定义贴出来! 就是多了 yfjg='是' 所以不能查出来 。换成 yfjg='否'也查不出来数据库里面绝对有这一项,而且满足此条件的记录不止一条,把这直接在sql中执行能查出来。我是楼主。我觉得问题是不是在这呢,将 yfjg='是' 传入excute()这个方法后,中文就变成乱码了,所以就查不出来,有没有这种可能呢?哪位大哥有过这种经历啊,怎么改呢????? 数据库里面我定义的都是varchar 型 ,我觉得这应该没什么问题,因为直接执行这些SQL语句都能查到十多条记录的,也就是说 返回的qydm 正常情况下一定有值。。 正如上面所说,是变成乱码的缘故!你可以这样改:譬如:当你从数据库中取出一个数据项,如:number=rs.getString(1);可通过一个字符编码的函数来解决!就是把请求通过iso-8859-1来编码,byte b[]=number.getBytes("ISO-8859-1");number=new String(b); 不是读不出来的问题,我读出来的都是数字记录项。我觉得是写不进中文进这个excute(),所以查询不出来,没有结果。public ResultSet excute(String sqlsel)throws Exception { Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery(sqlsel); return rst; }你想,当sql中 yfjg='是' 写入excute()后变成了 yfjg='?' 那样肯定在数据库中查不出来,怎么改呢???? 各位大哥都没有这种经历吗??不是读不出来,只要不加 yfjg='是' 或者 什么什么列='是'或'否' ,就都能查出来 急啊,谢谢各位大哥了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 把你的if(rs.next())找成while(rs.next()) 值为 “是”或“否” 的那些列在表中 我定义的全是 varchar,这应该没什么问题吧?还有哪儿的数据类型可能不对? 换成 while(rs.next()) 同样加上 yfjg='是' 或者 什么什么列='是'或'否' 也一条记录也显示不出来。。疯了,难道真人品? ????????????? 在传入数据库执行前,得到的SQL语句已经能得到中文了,就像我在第一楼写的那样。。数据库是否打开时候的编码和你在网页中用的中文编码一致?是什么意思?我觉得也不大可能阿,因为我对数据库不仅仅只有这个查询的操作,我能向数据库中通过insert插入中文写入数据库的啊,为什么就是查不出来呢??? 查之前已经转了啊,得到的那条sql语句也是正确的阿? 你用第二个SQL语句时,数据库可能只有一条记录,这时使用if(rs.next()){}游标指到第二条记录,所以页面取不到值 不应该是少一条记录的问题,你说的那个我遇到过。我现在的问题不是少一条的问题,而是一条也没有。直接在MYSQl里查的时候,有很多条记录的。。 zcfzl和gjze在数据库里是什么类型的?是varchar类型的吗? zcfzl和gjze这两个都是double型的,好像没什么问题吧 你可也试试用unicode编码转换一下来查询。“是”这个字的编码我忘了。你可以到网上查查看。我没试过,只是有这个想法 struts2中进行某Action操作后,立刻执行其他操作出现问题? 用hibernate做关联,查询出错的问题。 表格row的click事件与行中cell的click事件如何区分开? 关于JSP变量的问题,请帮忙,谢谢 下载文件时为什么要刷新一遍才能下载 上班第一天的感觉 附件上传打开没内容 jspsmart和servlet如何结合? jsp,servlet,applet是否可以读取本地文件!请高手赐教!!! 横向拼接多条sql查询结果返回使用实体接收 请大家帮忙提供处理权限,角色和用户的方案 神啊,救救我:调用javaBean问题
yfjg='是' 会不会是,你的数据库根本就没有满足条件的记录呀。请查证先!---------------------
如果还有问题,说清:
应该显示多少数据。实际显示了多少数据。你的数据库表的定义贴出来!
可通过一个字符编码的函数来解决!就是把请求通过iso-8859-1来编码,
byte b[]=number.getBytes("ISO-8859-1");
number=new String(b);
{
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery(sqlsel);
return rst;
}你想,当sql中 yfjg='是' 写入excute()后变成了 yfjg='?' 那样肯定在数据库中查不出来,怎么改呢????
急啊,谢谢各位大哥了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我觉得也不大可能阿,因为我对数据库不仅仅只有这个查询的操作,我能向数据库中通过insert插入中文写入数据库的啊,为什么就是查不出来呢???
这时使用if(rs.next()){}游标指到第二条记录,所以页面取不到值