记录点滴收获,汇聚知识乐园

脚步无法到达的地方,目光可以到达;目光无法到达的地方,梦想可以到达

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

C# 事务处理(Transcation)

数据库事务处理是以一个单一的逻辑单元完成一系列的操作,他可以由一系列的Sql语句组成,如果在该事务中包含的操作在执行的过程中没有发生错误,那么他对数据库所作的改变就是永久的,如果一旦有错误发生,它就不会对数据库作任何修改和改变。

事务必须是原子工作单位,对于其数据的修改,要么全部执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的,如果系统只执行这些操作中的一个子集,则会破坏事务的总体目标,事务具有ACID属性:

  Atomic(原子性):事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全退回,全部不保留。

  Consistent(一致性):事务完成或撤销后,都应该处于一致的状态。

  Isolated(隔离性):多个事务同时进行,他们之间应该互补干扰,应该防止一个事务处理其他事务也要修改的数据时,不合理的存取数据和不完整的读取数据

  Durable(永久性):事务提交以后,所作的工作就被永久的保存下来。

ADO.NET中的Transcation对象用于执行多个SQL语句组成的语句序列,并且除非全部语句执行成功,变动才会发生,否则回滚到事务执行前得状态。

public void ExecuteTranscation(String[] SqlStringList)    //事务处理

    {

        this.Open();

        SqlCommand cmd = new SqlCommand();

        cmd.Connection = con;

        cmd.Transaction = con.BeginTransaction();            //完成事务处理的前期准备工作

        try

        {

            if (SqlStringList != null)

            {

                foreach (String SqlString in SqlStringList)

                {

                    cmd.CommandText = SqlString;

                    cmd.ExecuteNonQuery();

                }

                cmd.Transaction.Commit();

            }

        }

        catch (Exception)

        {

            cmd.Transaction.Rollback();

        }

        finally

        {

            this.Close();

            this.Dispose();

        }

    }

posted on   guowenhui  阅读(630)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示