【C# 重构】-存储过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qiqibei666/article/details/82915255

前言:

  关于存储过程听大家说了N次,始终不太了解,不明白那就去实践一把,话说教是最好的学,那么实践也是如此;了解新事物的起初总会有相同的疑问,它是什么,有什么作用,如何使用,对于存储过程的认识也不例外;

正文:

1、是什么?

  存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,其实质上就是一段存储在数据库中的代码;经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它;

2、优缺点:

在这里插入图片描述
3、如何用?

  • 打开数据库-可编程性-存储过程
ALTER PROCEDURE [dbo].[Pro_CancelCard] 
	-- Add the parameters for the stored procedure here//添加需要的参数
	@cardNo varchar(20),
	@IsCheck varchar(20),
	@status varchar(20),
    @userID varchar(20),
    @returnCash numeric(19, 4),	
	@date date,
	@time time(7),
	@offDate date,
	@offTime time(7)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
    -- 对表信息的操作	
	Insert into T_CancelCard (cardNo,userID,returnCash,date,time,IsCheck)values(@cardNo,@userID,@returnCash,@date,@time,@IsCheck)

	Delete T_User where userID=@userID

	Update T_Card set status=@status

	Update T_Student set status=@status

	Update T_Line set offDate =@OffDate ,offTime =@OffTime
END

4、D层调用代码:

  • 书写完毕就是调用啦,以下是以退卡为例的小实践
public DataTable selectCard(Entity.CancelCardInfo cancelCardInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
         
            //所用到的参数,与存储过程相对应
            SqlParameter[] sqlParams = {new SqlParameter("@cardNo",CancelCardInfo.cardno),
                                        new SqlParameter("@userID",CancelCardInfo.userID),
                                        new SqlParameter("@returnCash",CancelCardInfo.returnCash),
                                        new SqlParameter("@date",CancelCardInfo.Date),
                                        new SqlParameter("@time",CancelCardInfo.Time),
                                        new SqlParameter("@IsCheck",CancelCardInfo.IsCheck),
                                        new SqlParameter("@status",CancelCardInfo.status),
                                        new SqlParameter("@offDate",CancelCardInfo.offDate),
                                        new SqlParameter("@OffTime",CancelCardInfo.offTime) };
            //存储过程名称
            string sqlCard = "Proc_CancelCard";     
            DataTable cancelCardSelect = SQLHelper.ExecuteQuery(sql, sqlParams, CommandType.StoredProcedure);  //注意这里也是存储过程    
            return cancelCardSelect;
        }

小结:

  小小实践,虽然并不很熟练,但对于存储过程有了小小的认识;

猜你喜欢

转载自blog.csdn.net/qiqibei666/article/details/82915255
今日推荐