Dapper学习笔记(5)-存储过程

时间:2023-03-08 16:23:32

一、无参存储过程

第一步:创建一个不带参数的存储过程,代码如下:

 CREATE PROCEDURE [dbo].[QueryRoleNoParms] 

 AS
BEGIN
SELECT * FROM T_Role;
END

第二步:执行存储过程,返回结果,代码如下:

         private List<Role> ExecuteStoredProcedureNoParms()
{
using (IDbConnection con = OpenConnection())
{
List<Role> roleList = new List<Role>();
roleList = con.Query<Role>("QueryRoleNoParms",
null,
null,
true,
null,
CommandType.StoredProcedure).ToList();
return roleList;
}
}

二、带输入输出参数的存储过程

第一步:创建一个带输入输出参数的存储过程,代码如下:

 CREATE PROCEDURE [dbo].[QueryRoleWithParms]
@RoleId int,
@RoleName nvarchar()='' out
AS
BEGIN
SELECT @RoleName = RoleName FROM T_Role WHERE RoleId =@RoleId
END

第二步:执行存储过程,返回执行结果,代码如下:

         private string ExecuteStoredProcedureWithParms()
{
DynamicParameters dp = new DynamicParameters();
dp.Add("@RoleId", "");
dp.Add("@RoleName", "", DbType.String, ParameterDirection.Output);
using (IDbConnection con = OpenConnection())
{
con.Execute("QueryRoleWithParms", dp, null, null, CommandType.StoredProcedure);
string roleName = dp.Get<string>("@RoleName");
return roleName;
}
}