Dapper.Net执行存储过程及其他操作

一、执行存储过程

 1、执行insert存储过程

执行insert、delete、update存储过程与执行insert、delete、update语句一样,都是使用Execute() 

CREATE PROCEDURE [dbo].[proc_AddSysUser01]
	-- Add the parameters for the stored procedure here
	@Name nvarchar(50),
	@Phone nvarchar(50)
AS
BEGIN
	--SET NOCOUNT ON;

    -- Insert statements for procedure here
	insert into Sys_User values(@Name,@Phone,'耶路撒冷',GETDATE())
END
GO
[HttpPost]
public ActionResult InsertProcedure(FormCollection collection)
{
    try
    {
        #region 执行insert存储过程
        using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NHibernate"].ConnectionString))
        {
            int result = connection.Execute("proc_AddSysUser01", new
            {
                Name = collection["name"],
                Phone = collection["phone"]
            }, commandType: CommandType.StoredProcedure);
        }
        #endregion

        return RedirectToAction("Index");
    }
    catch (Exception ex)
    {
        return View();
    }
}

2、执行select存储过程 

执行select存储过程与执行select语句一样,都是使用Query<Sys_User>()  

CREATE PROCEDURE [dbo].[proc_GetSysUser] 
	-- Add the parameters for the stored procedure here
	@Id int,
	@Name nvarchar(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select * from Sys_User where Id<@Id and Name like '%'+@Name+'%'
END
GO
public ActionResult SelectProcedure(int id, string name)
{
    try
    {
        #region 执行select存储过程
        using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NHibernate"].ConnectionString))
        {
            List<Sys_User_bak> userList = connection.Query<Sys_User_bak>("proc_GetSysUser", new
            {
                Id = id,
                Name = name
            }, commandType: CommandType.StoredProcedure).AsList();
        }
        #endregion

        return RedirectToAction("Index");
    }
    catch (Exception ex)
    {
        return View();
    }
}

 二、in操作

public ActionResult DetailsSome(int id, FormCollection collection)
{
    try
    {
        #region in操作
        using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NHibernate"].ConnectionString))
        {
            List<Sys_User_bak> userList = connection.Query<Sys_User_bak>("select Id,Name,Phone,Address from Sys_User_bak where Id in @Id and Name like @Name", new
            {
                Id = new string[] { "1", "2", "12" },
                Name = "%" + collection["name"] + "%"
            }).AsList();
        } 
        #endregion

        return RedirectToAction("Index");
    }
    catch (Exception ex)
    {
        return View();
    }
}

三、执行多条select语句 

public ActionResult GetSomeTable(FormCollection collection)
{
    try
    {
        #region 一次查询多张表
        using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NHibernate"].ConnectionString))
        {
            string sql = "select * from Sys_User_bak;select * from Sys_User_aaa;";
            SqlMapper.GridReader reader = connection.QueryMultiple(sql);
            var userBakList = reader.Read<Sys_User_bak>();
            var userAaaList = reader.Read<Sys_User_aaa>();
            reader.Dispose();
        }
        #endregion

        return RedirectToAction("Index");
    }
    catch (Exception ex)
    {
        return View();
    }
}

 参考文章:https://www.cnblogs.com/huangxincheng/p/5832281.html

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changuncle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值