C# dapper 使用事务

18 篇文章 4 订阅
5 篇文章 0 订阅
public bool UpdatePhone(string 姓名,   string 身份证号)
        {
            using (System.Data.IDbConnection conn = DapperHelper.CreateLocalConnection())
            {
                if (string.IsNullOrEmpty(姓名) || 姓名 == "null")
                {
                    return false;
                }
                List<string> listsql = new List<string>();
                string sql = "update 表_a set 姓名='" + 姓名 + "' where 身份证号='" + 身份证号 + "'";
                listsql.Add(sql);
                string sqljiben = "update 表_b set 姓名='" + 姓名 + "' where 身份证号='" + 身份证号 + "'";
                listsql.Add(sqljiben);
                IDbTransaction transaction = conn.BeginTransaction();
                try
                {
                    for (int j = 0; j < listsql.Count; j++)
                    {
                        conn.Execute(listsql[j], null, transaction);
                    }
                    transaction.Commit();
                    return true;
                }
                catch (Exception exception)
                {
                    transaction.Rollback();
                    return false;
                }
                //return conn.Execute(sql) > 0;
            }
        }

dapper链接数据库

public class DapperHelper
    {
       
        private static string GetConnectionString(string serverName)
        { 
            return @"Data Source=.;Initial Catalog=test;Persist Security Info = True; User ID = sa; Password =123; Max Pool Size = 512;Connection Timeout=10000";
        }



        private static System.Data.IDbConnection CreateConnection(string serverName)
        {
            var connection = new System.Data.SqlClient.SqlConnection(GetConnectionString(serverName)); 
            connection.Open(); 
            return connection; 
        }


        public static IDbConnection CreateLocalConnection()
        {
            return CreateConnection("localDb");
        }


    }

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C#使用Dapper进行事务批量操作,可以按照以下步骤进行: 1. 开启事务使用Dapper的Transaction属性可以开启事务。 ``` using (var cn = new SqlConnection(connectionString)) { cn.Open(); using (var transaction = cn.BeginTransaction()) { try { // 执行批量操作 transaction.Commit(); } catch { transaction.Rollback(); throw; } } } ``` 2. 执行批量操作:使用Dapper的Execute方法可以执行批量操作。 ``` using (var cn = new SqlConnection(connectionString)) { cn.Open(); using (var transaction = cn.BeginTransaction()) { try { string sql = "INSERT INTO MyTable (Column1, Column2) VALUES (@Column1, @Column2)"; List<MyData> data = new List<MyData>(); // 添加数据到data列表中 cn.Execute(sql, data, transaction); transaction.Commit(); } catch { transaction.Rollback(); throw; } } } ``` 其中,MyData是一个自定义的数据模型,包含要插入到数据库中的数据。 3. 使用SqlBulkCopy进行批量操作:Dapper也支持使用SqlBulkCopy进行批量操作,可以提高批量操作的效率。 ``` using (var cn = new SqlConnection(connectionString)) { cn.Open(); using (var transaction = cn.BeginTransaction()) { try { using (var bulkCopy = new SqlBulkCopy(cn, SqlBulkCopyOptions.Default, transaction)) { bulkCopy.DestinationTableName = "MyTable"; DataTable table = new DataTable(); // 添加数据到table中 bulkCopy.WriteToServer(table); } transaction.Commit(); } catch { transaction.Rollback(); throw; } } } ``` 以上就是使用Dapper进行事务批量操作的基本步骤。需要注意的是,批量操作可能会影响数据库性能,应该在适当的时候进行优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

香煎三文鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值