我有存储过程,我在其中有一个事务。错误:ROLLBACK TRANSACTION请求没有相应的BEGIN TRANSACTION
当我与SQL Server Management Studio中执行它没有错误,但是当我用我的C#代码执行它出现以下错误:
The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION
的代码是:
CREATE PROCEDURE [dbo].[AddHardDisk]
@name nvarchar(50), @brand nvarchar(50), @serial nvarchar(50), @cost float, @seller nvarchar(50),@note nvarchar(1000),@buyDate Date,
@size int ,@moneyType nvarchar(50)
AS
DECLARE @addedDeviceID int
BEGIN TRY
BEGIN TRAN
insert into Product(Name,Brand,Serial,Cost,Seller,Note,MoneyType,BuyDate)
values(@name,@brand,@serial,@cost,@seller,@note,@moneyType,@buyDate)
select @addedDeviceID =SCOPE_IDENTITY()
insert into HardDisk(ID,size)
values(@addedDeviceID,@size)
exec DecreaseMoneyFromFund @moneyType,@cost
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
你可以发布你的C#代码调用这个存储过程的相关部分吗? DecreaseMoneyFromFund过程也在做什么? – abhi
你能否发布'DecreaseMoneyFromFund'的源代码? –
问题出现在SQL中,而不是C# – wruckie