c# mysql 事务回滚_C#MySql事务回滚求解

刚刚接触MySql事务处理,总是无法回滚,请大家帮忙看下,不甚感激。

封装函数如下:

public void ExecuteTransaction(ListsqlList)

{using (var conn = newMySqlConnection(_connStr))

{

conn.Open();using (var trans =conn.BeginTransaction())

{try{foreach (var sql insqlList)

{using (var cmd = newMySqlCommand(sql, conn, trans))

{

cmd.ExecuteNonQuery();

}

}

trans.Commit();

}catch{

trans.Rollback();

}

}

}

}

当我调用的时候,比如执行多个SQL语句,第一个SQL正确,第二个SQL有语法错误的时候,第一个SQL语句还是提交到数据库执行了;我想第二个个SQL如果有语法错误,第一个SQL也回滚,请大家帮忙。

var sql1="INSERT INTO `order`(`orderid`,`name`) values(123,'测试1';)";var sql2="INSERT INTO `order`(`orderid`,`name`) values(234,`测试2`;)";

ExecuteTransaction(new List{

sql1,

sql2

});

测试2周围的单引号故意写错,但是sql1还是执行了。

public void ExecuteTransaction(List sqlList)        {            using (var conn = new MySqlConnection(_connStr))            {                conn.Open();                using (var trans = conn.BeginTransaction())                {                    try                    {                        foreach (var sql in sqlList)                        {                            using (var cmd = new MySqlCommand(sql, conn, trans))                            {                                cmd.ExecuteNonQuery();                            }                        }                        trans.Commit();                    }                    catch                    {                        trans.Rollback();                    }                }            }        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值