存储过程你会了吗?不会别拍我!

来源:互联网 发布:如何做淘宝客服代理 编辑:程序博客网 时间:2024/04/28 17:28

What?

  • 一组为了完成特定功能的SQL语句的集合,经编译后存储在数据库中。其实存储过程是什么,哪儿都有解释的。在这里不赘述。

Why

  • 为什么要使用存储过程?简而言之,就是要提高系统的效率和安全性。
  • 存储过程使用的必要性?我们知道,存储过程是与内存打交道的,因此它的效率大家可以知道了,它的效率是一般的SQL语句所无法比拟,尤其是使用嵌套等。

How

  • 以机房收费系统为例,
  • 创建:机房收费系统的结账部分(汇总)
  • Create PROCEDURE Proc_CheckOut@OperateUser varchar(50),@status varchar(9),@IsCheckOutStatus varchar(50)ASBEGINselect  (select count(cardID )  from T_CancelCardInfo where operateUser =@OperateUser) as 退卡张数,(select sum(returnCash )  from T_CancelCardInfo where operateUser =@OperateUser and isCheckStatus =@IsCheckOutStatus ) as 退卡金额 ,(select sum(rechargeCash ) from T_RechargeInfo where operateUser =@OperateUser and isCheckStatus =@IsCheckOutStatus ) as 充值金额 ,(select count(ID ) from T_RegisterCardInfo ) as 总售卡张数,(select sum(rechargeCash ) from T_RechargeInfo where  isCheckStatus =@IsCheckOutStatus) as 充值总金额 ,(select sum(returnCash )  from T_CancelCardInfo where isCheckStatus = @IsCheckOutStatus) as 退卡总金额 ,Count(ID ) as 售卡张数  from T_RegisterCardInfo where operateUser =@OperateUser and status =@statusEND
  • 调用:D层关于汇总方法中的代码,调用存储过程
  • Public Function SelectCollectInfo(enUserInfo As Entity.UserInfoEntity) As DataTable        Dim procName As String              '存储过程名        Dim sqlhelper As New SqlHelper      '实例化SQLHelper        Dim paras As SqlParameter()         '定义一个数组,传参        Dim dt As DataTable        '调用存储过程        procName = "proc_CheckOut "        '传参        paras = New SqlParameter() {New SqlParameter("@operateUser", enUserInfo.UserID),                                    New SqlParameter("@status", "使用"),                                    New SqlParameter("@isCheckOutStatus", "未结账")}        '调用SQLHelper中的查询方法        dt = sqlhelper.ExecuteQuery(procName, CommandType.StoredProcedure, paras)        Return dt    End Function

由于误删了一篇博客,因此在这里补出该篇博客。这篇博客主要讲解了存储过程,自我感觉讲的挺简单的,利用小星师哥的一句话,如果你再看不懂个,就别拍了我哈。



原创粉丝点击