首页 新闻 会员 周边 捐助

求助啊!各位前辈!

0
悬赏园豆:20 [待解决问题]

System.Data.SqlClient.SqlException (0x80131904): EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 1,当前计数 = 0。 EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 1,当前计数 = 0

在调试项目时在调用存储过程出现的这种错误,前辈们帮我看看怎么了,下面是存储过程。

 

USE [WeixinWeb]
GO
/****** Object: StoredProcedure [dbo].[Order_WeixinShop] Script Date: 12/11/2017 11:22:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Batch submitted through debugger: SQLQuery11.sql|7|0|C:\Users\ws\AppData\Local\Temp\~vs6108.sql
-- Batch submitted through debugger: SQLQuery7.sql|7|0|C:\Users\ws\AppData\Local\Temp\~vsC89B.sql
ALTER procedure [dbo].[Order_WeixinShop]
@oid nvarchar(50),
@paymethod int,
@remark nvarchar(50),
@CreateOrderTime datetime,
@msg nvarchar(50) output
as
begin
--因为一个点击事件需要同时操作两个功能 当做 一个整体
--则 需要 事务处理
--开始事物处理
--提交事物处理
--回滚事物
--因为有可能操作失败 如果失败 需要捕获异常 try-catch
begin try
begin tran
--先添加一个从表
--要声明 一个变量
declare @order_id uniqueidentifier=newid()
--产生一个十六进制的 唯一的标识符
insert into OrderInfoChi(OrderId,Pid,Num,Price,SumPrice)
--插入的数据来源 产品的 ID 是从购物中获取 但 产品的名称 一个事购物车 一个是产品表
--所以 为了 方便 不出错 采用两表连接
select @order_id,tmp.Pid,tmp.num,tmp.price,num*price from

(select ShopCart.Num as num,ShopCart.Price as price,ShopCart.Pid from ShopCart join ProductInfo on ProductInfo.Id=ShopCart.Pid where ShopCart.Oid=@oid and ShopCart.Pid
in(select ShopCart.Pid from ShopCart where Oid=@oid and ShopCart.IsCheck=1)) tmp

--在插入主表
--因为表中需要使用从表中 合计出来的总价
--定义 一个变量接受总价
declare @sumprice money
select @sumprice =SUM(SumPrice) from OrderInfoChi where OrderId=@order_id

--插入 主表 数据
insert into OrderInfoFat(OrderId,Oid,Status,TotalPrice,PayMethod,Remark,Carriage,SumPrice,CreateOrderTime
) values (@order_id,@oid,0,@sumprice,@paymethod,@remark,15.0000,@sumprice,@createordertime
)

--同时删除购物车中对应的数据
delete from ShopCart where ShopCart.Oid=@oid and ShopCart.Pid
in(select ShopCart.Pid from ShopCart where Oid=@oid and ShopCart.IsCheck=1)

commit tran
set @msg='提交订单成功!'
end try
begin catch
--如果捕获异常,需要有异常处理
if @@TRANCOUNT>0
--如果操作失败,则进行回滚
begin
rollback
--向外界提出出错,给输出参数赋值
set @msg='提交订单失败!'
end

end catch
end

橘子拾光的主页 橘子拾光 | 初学一级 | 园豆:182
提问于:2017-12-11 11:26
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册