站长网_站长创业_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: SQL Server存储过程在C#中调用的简单实现方法
搜索:
您的位置: 主页 > 教程 > 软件开发 > C#教程 > » 正文

SQL Server存储过程在C#中调用的简单实现方法

来源: 易采站长站

0. 简介

【定义】:存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

【优缺点】:存储过程优缺点都非常的明显!几乎每一篇讨论存储过程的文字,都是会说其他优点是balabala,缺点是balabala,然而最后作者的结论都是:“我不推荐使用存储过程”。
具体的存储过程的优缺点这里就不详述了!

公司旧项目使用存储过程实现业务逻辑,没办法只能研究了一下 🙃!

闲言碎语不要讲,书归正传,下面就开始存储过程!

1. 语法细节

变量与变量之间使用逗号隔开,语句结尾无标点符号

声明变量:declare @variate_name variate_type,例如声明并赋值:declare @name nvarchar(50) ='shanzm'

变量赋值:set @variate_name =value

打印变量:print @variate_name

begin……end 之间的SQL语句称之为一个代码块

可以使用if……else实现逻辑判断

创建存储过程:create procedure pro_name

执行存储过程:execute pro_name

输出参数:存储过程返回的是SQL语句查阅结果,在定义参数后,添加output,设置为一个输出参数(和C#中输出参数类似),相当于多了一个返回值!

创建存储过程的基本形式:

create procedure pro_name_tableName
@param1 param1_type,
@param2 param2_type,
as
begin 
  --sql语句
end
go

2. 示例1:模拟转账

①示例背景:使用存储过程,模拟在一张存款表中实现用户与用户之间的转账

②准备工作1:在数据库中创建表szmBank

CREATE TABLE [dbo].[szmBank](
 [Id] [bigint] IDENTITY(1,1) NOT NULL,
 [Balance] [decimal](18, 0) NOT NULL

添加一些测试数据:

Id                   Balance
---------------      ----------------
1                    1000
2                    2000
3                    3000

③准备工作2:封装C#代码中的SQL辅助类SqlHelper

注意封装的时候要有一个CommandType参数,决定是执行SQL语句还是存储过程,
CommandType是一个枚举类型,其中Text值为执行SQL语句,StoreProcedure为执行存储过程
具体封装细节这里就不详述了。

最新图文资讯
1 2 3 4 5 6
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -