C#与T-SQL 银行转账数据交互设计( 事件,存储过程综合应用)

设计理念
1.所有数据存储比对和存储过程全部交给服务器端
2.前端只做数据提交和判断结果

后端SQL数据库存储过程

create table bank
(
   userId int identity primary key not null,
   userName nvarchar(32) not null,
   userMoney int null,
   check(userMoney >10)
)
go
insert into bank values ('王大力',1000)
insert into bank values ('鲁冠球',2000)
go

create proc TransMoney--创建一个转账存储过程
	@Money int --转账金额
	,@userId_out int--转出账户
	,@userId_in int--转入账户
	,@userName_in nvarchar(32)--转入账户抬头
	,@successFlag int output--是否成功标签1成功,0失败
	as 
	begin
		begin transaction--开始一个事件
			declare @geterror int --捕获错误的变量
			--根据id匹配用户名,如果匹配不成功,将@geterror用于最后的事件回滚
			select @geterror=(select 匹配=case
						   when userName=@userName_in then 0
							else 1
						   end
							from bank where userId=@userId_in)
			--转出账户,
			update bank set userMoney=userMoney-@Money where userId=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值