问一个sql查询问题,请帮忙解答
在查询分析器里,用以下语句查询
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




