2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c# mysql 事务_C# 使用SqlTransaction进行事务处理

c# mysql 事务_C# 使用SqlTransaction进行事务处理

时间:2023-10-26 01:04:04

相关推荐

c# mysql 事务_C# 使用SqlTransaction进行事务处理

事务处理基本原理

事务是将一系列操作作为一个单元执行,要么同时成功,要么同时失败,回滚到最初状态。在事务处理术语中,事务要么提交,要么中止。若要提交事务,所有参与者都必须保证对数据的任何更改是永久的。不论系统崩溃或是发生其他无法预料的事件,更改都必须是持久的。只要有一个参与者无法做出此保证,整个事务就会失败。事务范围内的所有数据更改将回滚到特定设置点。

一般的操作是不会使用到事务操作的, 因为事务操作中造成表处于锁定状态,在一定的程度上造成效率低下,不过有些时候不得不使用事务, 例如本例中,需要在改变维修单状态的同时,插入付款的单据,这些操作必须是同时成功或者同时失败。所以必须使用事务。

下面就是事务的基本使用方法: ///

///事务处理

///

///数据库连接字符串

publicvoidSqlTransaction(stringconn)

{

//创建连接对象

using(SqlConnectionmySqlConnection=newSqlConnection(conn))

{

//打开连接

mySqlConnection.Open();

//创建SqlTransaction对象并用SqlConnection对象

//BeginTransaction()方法开始事务

SqlTransactionmySqlTransaction=mySqlConnection.BeginTransaction();

try

{

//创建保存SQL语句

SqlCommandmySqlCommand=mySqlConnection.CreateCommand();

//将Transaction属性设置为上面所生成的SqlTransaction对象

mySqlCommand.Transaction=mySqlTransaction;

//将SqlCommand对象的CommandText属性设置为第一个INSERT语句,

//执行语句A

mandText="UPDATEdbo.use_requestPayOutSETstate='2'WHERErequestPayOut_no=@requestPayOut_no";

mySqlCommand.Parameters.AddRange(newSqlParameter[]{

newSqlParameter("@requestPayOut_no","")

});

mySqlCommand.ExecuteNonQuery();

//执行语句B

mandText=string.Format("updateUse_RepairBillsetopen_state='9',IsRefusal=''whererequest_noin({0})","");

mySqlCommand.ExecuteNonQuery();

//提交事务,使INSERT语句增加的两行在数据库中保存起来

mit();

}

catch(Exception)

{

//失败,事务回滚

mySqlTransaction.Rollback();

}

}

}

Tags:

C#

转载:感谢您对白码驿站个人博客网站平台的认可,以及对我们原创作品和文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源白码驿站”。/Home/Detail/4528

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。