将存储过程转换为C# [英] Convert Stored Procedure into C#
本文介绍了将存储过程转换为C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好Everybuddy我正在开发游戏应用程序......!在那里我需要一个转换存储过程在c#代码..!我试图成功,但无法实现......! PLZ帮我,我的代码是跟着.....!
注意: - 我不想在我的应用程序中调用此程序..!只需将此程序转换为c#!
Hi Everybuddy i m working on Game Application...! and there i need a convert stored procedure in c# code..! i tried to make it but could not achived...! plz help me my code is Followed.....!
NOTE:- i dont want to call this procedure in My Application..! just convert this procedure into c#!
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[CancelRegistrations]
@mTourID numeric(18, 0) ,
@MoneyType char(1)
AS
DECLARE
@Credit float,
@TicketNo varchar(10),
@username varchar(30),
@TicketTourID numeric(18,0),
@userId int,
@pIP nvarchar(15),
@realmoney float,
@skinid int
BEGIN
DECLARE CANCREG_CUR CURSOR
FOR SELECT Nickname,Credit,TicketNo,skinid FROM tblRegistration WHERE TournamentID = @mTourID ORDER BY RegID
OPEN CANCREG_CUR
FETCH NEXT FROM CANCREG_CUR
INTO @username,@Credit,@TicketNo,@skinid
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @userId=isnull(UserID,0),@realmoney=realmoney
FROM tblUsers
WHERE nickname=@username and skinid=@skinid
IF @TicketNo != ''
BEGIN
SELECT @TicketTourID=TournamentID FROM tblTickets
WHERE TicketNo=@TicketNo
IF @TicketTourID = 0
BEGIN
UPDATE tblTickets SET Status='V' WHERE TicketNo=@TicketNo
END
INSERT INTO tblTransMaster(UserID,TransDate,TransMode,Amount,
Source,Details,IP,realmoney,CReason,currencysign)
VALUES(@userId ,getdate(),'D',0,'TEXAS MTT SERVER',
'UNREGISTERED FROM TOURNAMENT - ' + Convert(varchar,@mTourID) + ' DUE TO TOURNAMENT CANCELLATION',
@pIP ,@realmoney,'TOURNAMENT CANCELLED','TICKET')
DELETE FROM tblRegistration WHERE nickname=@username and skinid=@skinid
END
ELSE
IF @MoneyType='R'
BEGIN
UPDATE tblUsers SET RealMoney=RealMoney + @Credit
WHERE nickname=@username and skinid=@skinid
INSERT INTO tblTransMaster(UserID,TransDate,TransMode,Amount,
Source,Details,IP,realmoney,CReason,currencysign)
VALUES(@userId ,getdate(),'D',@Credit,'TEXAS MTT SERVER',
'UNREGISTERED FROM TOURNAMENT - ' + Convert(varchar,@mTourID) + ' DUE TO TOURNAMENT CANCELLATION',
@pIP ,@realmoney,'TOURNAMENT CANCELLED','CASH')
DELETE FROM tblRegistration WHERE nickname=@username and skinid=@skinid
END
ELSE
BEGIN
UPDATE tblUsers SET PlayMoney=PlayMoney + @Credit
WHERE nickname=@username and skinid=@skinid
DELETE FROM tblRegistration WHERE nickname=@username and skinid=@skinid
END
FETCH NEXT FROM CANCREG_CUR
INTO @username,@Credit,@TicketNo
END
CLOSE CANCREG_CUR
DEALLOCATE CANCREG_CUR
END
推荐答案
这是不难转换成C# - 它只是在try-catch块中开始一个事务并在本地处理测试时一次执行一个语句的情况。如果你到最后,提交交易。
试试吧 - 这并不困难!
It's not difficult to translate into C# - it's just a case of beginning a transaction in a try-catch block and executing each statement one at a time while handling the tests locally, pretty much. If you get to the end, commit the transaction.
Try it - it isn't difficult!
这篇关于将存储过程转换为C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文