SQL事务的使用方法

本文阐述了数据库事务的概念及其在确保数据一致性和完整性方面的重要性。通过具体的例子解释了事务如何防止因异常情况导致的数据不一致,并提供了SQL中事务操作的基本代码示例。

事务的存在意义:

原因:

比如说,从A银行取出500元,会执行两个步骤:①柜台取出500元钞票②柜台从账户划掉500元余额
若在①步骤结束后,因为各种突发原因(例如断电…)导致②步骤没有成功实现,而①已完成。会导致数据库数据不匹配的情况发生。为处理这种情况,引入事务的概念。

方法:

规定①②步骤全部完成才会进行后续操作。否则其中任一一个步骤出错,则会回滚到开始处理之前。

对于SQL中的事务操作,可以直接调用DBHelp的方法;

直接上代码:

 try
            {
                sql.dbh.TransactionBegin();//事务开始

                List<Variable> list = (List<Variable>)variableBindingSource.DataSource;
                foreach (Variable item in list)
                {
                    item.Customer = txt_kehu.Text;
                    item.SNModel = txt_moban.Text;
                    item.Creationer = Variable._user;
                    item.CreationTime = DateTime.Now;
                    item.State = true;
                    sql.dbh.Insert(item);
                }

            }
            catch (Exception)
            {
                sql.dbh.TransactionRollBack();//失败,事务回滚
                return;
            }

            sql.dbh.TransactionCommit();//成功,事务提交

格式为(习惯性添加try-catch):

try
{
  sql.dbh.TransactionBegin();//事务开始
}
catch(Exception)
{
   sql.dbh.TransactionRollBack();//失败,事务回滚
   return;
}
 sql.dbh.TransactionCommit();//成功,事务提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值