将存储过程转换为C# [英] Convert Stored Procedure into C#

查看:74
本文介绍了将存储过程转换为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆