java中使用存储过程出现"该语句没有返回结果集
先看看网上的解决办法:
源:http://hi.baidu.com/wyjsusan/item/c5fe63f5321ab4de42c36a99两次遇到这个问题了,还是这样子解决~!
————————————————————————————我是分割线————————————————————————
如果java代码上没有问题,存储过程在SQLServer中执行也没有问题,就要检查一下存储过程的开始部分是否加上了
“SET NOCOUNT ON”
这句话,如果没有,就是这里的问题了,加上这句话,再重新执行代码,OK!通过!
一般出现这种状况是在存储过程中在使用select命令前使用了更新命令,如insert ,update,delete等命令,直接使用select命令的存储过程即使不加上“SET NOCOUNT ON”也能获得结果集,所以经常会忽略这个问题!
但是在.Net环境下没发现有这种问题,呵呵,毕竟不是一家的啊!(这个不知道,没试过。)
但是我按照他的方法弄了以后,还是会出现那样的问题
最后通过看CallableStatement的API解决的,如下:
if(cs.execute()){
ResultSet rs = cs.executeQuery();
while (rs.next()) {
.
.
.
不知道网上的这个具体是怎么样的存储过程,
我的存储过程:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
create proc [dbo].[getCarGoodsDetails](@customerID varchar(40))
as
declare @carID varchar(40)
set @carID=(select carID from ShoppingCar where customerID=@customerID)
if(@carID is not null)
begin
select g.goodsID,goodsName,goodsPrice,quantity from Goods g,ShoppingCarDetails s
where g.goodsID=s.goodsID and s.carID=@carID
end