这样的SQL语句(游标)为什么要被重复执行5次? (5 行受影响) (5 行受影响) (5 行受影响) (5 行受影响) (5

这样的SQL语句(游标)为什么要被重复执行5次? (5 行受影响) (5 行受影响) (5 行受影响) (5 行受影响) (5,第1张

提示5行受影响,是以下查询得到的结果行数,提示了5次,说明查询执行了5次。查询执行5次,那么就是因为你的游标执行了5次。你单独运行一下游标的查询语句,看看游标是不是有5行记录?如果有5行,那么就对上了。

没执行一次游标,都会执行一下游标体里面的查询,每次查询都会有一个输出信息N行受影响。

SELECT (SUBSTRING(CP,10,4)+'-'+SUBSTRING(CP,14,2)+'-'+SUBSTRING(CP,16,2)+' '+SUBSTRING(CP,18,2)+':'+SUBSTRING(CP,20,2)+':'+SUBSTRING(CP,22,2)),SUBSTRING(CP,@SB,5),SUBSTRING(CP,@SA,5)

FROM [DB_ENVIDATACENTER].[dbo].[T_transmittal]

WHERE MN='83028583206005' AND CN='2011' AND QN BETWEEN @QN1 AND @QN2

看看SELECT CHARINDEX('S01',CP),CHARINDEX('S03',CP)

FROM [DB_ENVIDATACENTER].[dbo].[T_transmittal]

WHERE MN='83028583206005' AND CN='2011' AND QN BETWEEN @QN1 AND @QN2

结果是不坦拦是5行,如果是腔信前,提示5次5行受影伍清响,没问题。

ResultSet初始的指针是在查询结果的第一行之前,你袭运洞这样肯定取不出来.如果结果不为空的话,你先用rs.next()然后再取值

是在你查询结悄带果的第一条之前,你用while(rs.next())已经把rs先前移了一条,即移到第一条记录那里.所以没错.每次执行next()都把指针向前移一条.而把while()的结尾花括号打在String content=rs.getString("content"),while已经执行结束,rs的指拍枯针对应的记录已经为空,你再取数据肯定出错.

建议看下api的说明文档


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12322888.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存