CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

问一个sql查询问题,请帮忙解答

楼主jinqinghai()2005-01-07 09:49:57 在 Java / Web 开发 提问

在查询分析器里,用以下语句查询  
   
  select   t1.col1,t2.COL1,t2.COL2,t2.SF_ID,t2.KH_ID,t2.col20   from   YXGL_JFXX_JBXX   t1,YXGL_KHXX_KH   t2   WHERE   t1.SF_ID=t2.SF_ID  
   
  查询结果是  
   
  14050502301703 051901000210017003011 李洪 0000969F-0AF3-4E9E-6A39-369EDECC30A7 25E94A7D-BEEA-4384-F045-A4B83589C9D4 0  
  06020105800204 021001000110002004031 刘忠林 00018193-734E-46AC-94C8-749A03207D8F 424262FF-11BF-4BAB-EB6E-F5A7FC7DC99A 0  
  10020301201703 041701000110016003031 孙志丰 0003F8E8-7B8A-4350-99FE-FD9EB3044C25 DF6E5ABC-D9BD-4A71-C856-C98EB99A0EB2 0  
  15030402601703 041601000260017003121 王珍 00049516-9547-4008-8D91-5AA08B5DB095 910DD4FE-4B20-4E6E-AC06-ECA0701261A2 0  
  06020105801604 021001000110016004031 李强 0004FE9B-4695-4A02-2928-73B5F79093CC 1EA03DAE-4825-4B76-814A-1187AB3B1854 0  
   
   
  但是在程序里,用2个ss1分别进行查询  
  ss1=14050502301703     可以查出结果  
  ss1=06020105800204     却查不出结果     说rs1.next();执行失败  
   
  代码如下  
   
  String   khh="";  
  String   khm="";  
  String   ss1="";  
  ss1=request.getParameter("display");    
  String   strSQL="select   t1.COL1,t2.COL1,t2.COL2,t2.SF_ID,t2.KH_ID,t2.COL20   from   YXGL_JFXX_JBXX   t1,YXGL_KHXX_KH   t2   WHERE   t1.SF_ID=t2.SF_ID   and   t1.COL1='"+ss1+"'";  
  ResultSet   rs1=rs.executequery(strSQL);  
  out.print(strSQL);  
  if(rs1.next())  
  {  
  khh=rs1.getString(2);  
   
  khm=rs1.getString(3);  
  }  
   
  请jsp高手帮忙看一下问题所在,先谢谢了 问题点数:100、回复次数:20Top

1 楼caiyi0903(willpower)回复于 2005-01-07 09:53:35 得分 7

if(rs1.next())  
  {  
  khh=rs1.getString(2);  
   
  khm=rs1.getString(3);  
  }  
  程序只判断一次,指针指到下一个就结束了,没有继续判断。把if改成while是不是你要的??Top

2 楼greenmars2004(火球)(业余程序员)(我会的不多,不过都可以告诉你)回复于 2005-01-07 09:56:55 得分 7

if不行whileTop

3 楼jinqinghai()回复于 2005-01-07 10:00:55 得分 0

刚刚用while尝试了,出来的结果也是一样的。  
   
  while(rs1.next())  
  {  
  khh=rs1.getString(2);  
   
  khm=rs1.getString(3);  
  }  
   
  这样也不行啊Top

4 楼wadsunglow(东)回复于 2005-01-07 10:07:34 得分 7

upTop

5 楼zyg158((DD)OTP)回复于 2005-01-07 10:08:06 得分 7

先试试把ss1直接在查询语句中改成"06020105800204"行吗?Top

6 楼flykong111(时空界限)回复于 2005-01-07 10:09:39 得分 7

应该用循环while()……Top

7 楼jinqinghai()回复于 2005-01-07 10:11:33 得分 0

改成06020105800204,  
   
  rs1.next()还是没运行。。Top

8 楼kissdavid(梦的≮翅膀≯)回复于 2005-01-07 10:11:39 得分 7

while(rs1.next())Top

9 楼Polarislee(北极星)(无房无车,飘在北京)回复于 2005-01-07 10:13:50 得分 7

会不会是数据库中的数据后面有空格啊Top

10 楼jialin_2004(老猫)回复于 2005-01-07 10:16:52 得分 7

会不会是传递参数的时候06020105800204变成了6020105800204所以数据库找不到Top

11 楼jinqinghai()回复于 2005-01-07 10:17:21 得分 0

现在的问题是用  
   
  select   t1.COL1,t2.COL1,t2.COL2,t2.SF_ID,t2.KH_ID,t2.COL20   from   YXGL_JFXX_JBXX   t1,YXGL_KHXX_KH   t2   WHERE   t1.SF_ID=t2.SF_ID   and   t1.COL1='06020105800204'  
   
  在查询分析器里能查出来,在网页里却查不出来  
   
  select   t1.COL1,t2.COL1,t2.COL2,t2.SF_ID,t2.KH_ID,t2.COL20   from   YXGL_JFXX_JBXX   t1,YXGL_KHXX_KH   t2   WHERE   t1.SF_ID=t2.SF_ID   and   t1.COL1='14050502301703'  
  却可以查出来。。。。  
   
  空格问题我也考虑过,用了trim()结果还是一样的  
   
  Top

12 楼lmcctvjava(无心)回复于 2005-01-07 10:17:40 得分 7

你先把SQL语句打印出来复制   到SQL控制台去执行一次看看   可以执行的话就说明你的语句写的没问题  
   
  ss1=request.getParameter("display");   调试一下看得到的是什么值Top

13 楼yxxx(_小孬)回复于 2005-01-07 10:18:52 得分 7

楼主是说用14050502301703可以查出结果,用06020105800204就查不出?  
  奇怪,关注Top

14 楼jinqinghai()回复于 2005-01-07 10:25:48 得分 0

在   out.print(strSQL);输出的sql语句完全符合,放到查询分析器里可以运行。。  
   
  可是if(rs1.next())那里却说是运行不了。。  
   
  我也是很奇怪,有一部分数据能查出来,剩下的却查不出来Top

15 楼dabo1980(Java小菜鸟)回复于 2005-01-07 10:33:32 得分 7

问题不够详细,估计是非法字符造成的例如空格或者单引号Top

16 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-01-07 10:40:20 得分 7

楼主是说用14050502301703可以查出结果,用06020105800204就查不出?  
  奇怪,关注  
  -------  
  不会吧!是不是你的数字用了全角汉字啊?Top

17 楼jinqinghai()回复于 2005-01-07 10:45:37 得分 0

问题解决了。。  
   
  问题出在Tomcat   5.0\webapps下面,我有2个程序,分别配置了   yx,yx1的2个网页文件夹,虽然分别配置了yx1201,yx1208两个库的配置文件(system.xml),但实际运行的是yx1201一个库。。。。  
   
  所以yx1208上的一部分数据是不可能显示出来的。。。。。  
   
  埃,郁闷了一上午,才发现是自己配置的问题。。  
   
  Top

18 楼jinqinghai()回复于 2005-01-07 10:49:46 得分 0

只能说还是基础太差了。。。  
   
  结贴,马上给分!Top

19 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-01-07 10:50:57 得分 7

哎Top

20 楼liaohaiying(超菜)回复于 2005-01-07 10:51:39 得分 9

用14050502301703可以查出结果,用06020105800204就查不出?  
  ______  
  估计是06020105800204变成了6020105800204,  
  你可以试一下用模糊查询,  
  String   pstrSQL   =   "select   t1.COL1,t2.COL1,t2.COL2,t2.SF_ID,t2.KH_ID,t2.COL20   from   YXGL_JFXX_JBXX   t1,YXGL_KHXX_KH   t2   WHERE   t1.SF_ID=t2.SF_ID   and   t1.COL1   like   '%"+   pstrUserName+"%'";  
  如果成功就说明是把前面的0丢失了Top

相关问题

  • SQL查询一奇怪问题,100分请教高人解答!
  • sql 查询问题
  • ?? SQL查询问题??
  • sql查询问题
  • SQL查询问题
  • sql 查询问题!!!!!
  • SQL查询问题
  • SQL查询问题!
  • SQL查询问题
  • sql查询问题!

关键词

  • 查询
  • 语句
  • 分析器
  • 执行
  • sql
  • yxgl
  • kh
  • col
  • khxx
  • jfxx

得分解答快速导航

  • 帖主:jinqinghai
  • caiyi0903
  • greenmars2004
  • wadsunglow
  • zyg158
  • flykong111
  • kissdavid
  • Polarislee
  • jialin_2004
  • lmcctvjava
  • yxxx
  • dabo1980
  • jFresH_MaN
  • jFresH_MaN
  • liaohaiying

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo