C# 存储过程-机房充值
来源:互联网 发布:mysql左外连接查询 编辑:程序博客网 时间:2024/05/16 02:29
前言
开始想着机房怎么也得来个存储过程吧,后来就打听了打听,组合查询的比较多,可我是谁啊,工地一枝花啊,说啥也得自己来个不一样的,当时写完,表面没啥错,也执行成功了,找谁都跟谁说我是个天才,可到了运行的时候可难死我喽,想法总是很丰富的,也写出来了,就是不对。
正文
总的说起来,有三个过程吧
1.sql 语句写出来了,代码也能显示充值成功,但是充多少就是多少,笨蛋的只会更新不会加,于是就有了以下的sql语句
后果:之前的数据会丢失,钱也会丢失
2.知道了要把之前剩余的钱和现在充值的钱相加,结果只会子加,因为我两个表里字段名都是cash,最后加的时候只会充值+充值
后果:变成了黑心厂家,虽然是可以相加,但是之前的数据还是会丢失,But只要你充的多,那么你卡里的钱就会加倍,哈哈哈
3.在经过各种查找,更改,测试,终于在不经意中发现了其中的奥秘,也发现了存储过程的厉害之处,其实也挺好玩的
好啦,这样可要找不同了,惊喜总在细微处,其实啊,调表的过程中想法是对的,但是语句还是有一点点差错的。
一个是调表里的数据,一个是从D层返回的数据,这样就可以相加啦。
好啦,整体的代码就是这样的:
USE [JFCharge]GO/****** Object: StoredProcedure [dbo].[Proc_Recharge] Script Date: 2017/8/5 16:13:15 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <井朝>-- Create date: <2017-7-13>-- Description: <向card和充值表里添加数据>-- =============================================ALTER PROCEDURE [dbo].[Proc_Recharge] -- Add the parameters for the stored procedure here @cardID varchar(11), @cash decimal(18, 1)ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. DECLARE @Money decimal(18, 1), @SumMoney decimal(18, 1), @lastcash decimal(18, 1) BEGIN TRANSACTION --插入充值记录到充值表 INSERT INTO [dbo].[CardRecharge] (cardID,cash) VALUES(@cardID,@cash) ---从卡表获取原始金额赋值给money SELECT @Money=@Cash FROM [dbo].[Card] WHERE cardID =@cardID ---从充值卡表获取充值金额赋值给lastcash SELECT @lastcash=@cash from [dbo].[CardRecharge] WHERE cardID =@cardID --计算出要返回的总金额 SumMoney 等于原始金额money加上 lastcash SET @SumMoney = @Money+@lastcash --更新卡表的金额,将summoney赋值给两张表的cash update [dbo].[Card] set cash=@SumMoney where cardID =@cardID if @@ERROR <>0 rollback --回滚 else commit --执行 -- Insert statements for procedure hereEND
小结
前进的步伐还在加快,多用一些自己不擅长的东西去寻找新鲜感吧。
阅读全文
0 0
- C# 存储过程-机房充值
- 【C# 机房重构】 存储过程
- 【c#机房重构】之存储过程
- 【C#机房重构】之存储过程实战
- 存储过程--机房收费系统
- 【机房重构】存储过程
- 【机房重构】存储过程
- 【机房重构】存储过程
- 机房重构--存储过程
- 【机房重构】-存储过程
- 机房重构存储过程
- 【机房重构】——查看上机记录、充值记录+三层+存储过程+模板方法
- 机房收费系统3之存储过程
- 【机房重构】SQl之存储过程
- 机房收费系统—《存储过程》
- 机房收费系统之存储过程
- 机房重构——存储过程
- 机房重构——存储过程
- 最讨厌心灵鸡汤 所有失败最终都是人不行
- 关联式容器之底层红黑树
- Java并发编程:线程的创建和执行
- 【Java学习笔记】22:查漏补缺2
- Hibernate入门(一)
- C# 存储过程-机房充值
- 关于JDBC的一些基础知识
- 变量类型和计算
- Andriod ListView
- Windows7(32位)下安装Ubuntu16.04双系统
- 工厂方法模式
- 微信支付回调处理
- 近期目标
- mybatis注解配置缓存的方法