zoukankan      html  css  js  c++  java
  • 数据库事务Commit()提交

    今天和朋友在讨论数据库的时候发现一个问题,数据库有四种隔离级别

    我在用事务更改一个表的时候,我更改了值但不Commit(),这是别的C#语句是不能操作这个数据库表的,但是可以用SQL语句在来查看这个表的变化,结果表明在用事务是,在Commit()之前,表里面的数据已经更新,但是如果在不执行Commit()语句就关闭或停止调试的话,表里面改变的值就会回滚到原来的值,举个例子说明:

    StuName   StuAge

    aa           11


    //读取数据很简单了,就不写了
    .....
    //更改数据

    private void UpdateNoCommit_Click(object sender, EventArgs e)
    {

    SqlConnection con
    = new SqlConnection("Data Source=.;Initial Catalog=Test;Integrated Security=True");
    con.Open();
    SqlCommand cmd
    = new SqlCommand("update Student set StuName='改变' where ID=406333", con);
    //tran为一个全局变量
    tran = con.BeginTransaction();
    cmd.Transaction
    = tran;
    //此时只是执行了语句,并没有把这个事务提交上去
    cmd.ExecuteNonQuery()
    }

    在单击UpdateNoCommit按钮之后,到 数据库里查询一个这个表会发现StuName的值已经改变

    private void RollBack_Click(object sender, EventArgs e)
    {
    tran.RollBack();
    }

    在执行这个操作以后,StuName的值就会变为aa

    当然如果执行tran.Commit()操作 的话,这个值是会提交到数据库的

  • 相关阅读:
    Framework7-Vue搭建项目
    在vue中使用handsontable
    electron-vue中关闭烦人的es语法检查
    今天工作整整一个月了,来记录一下(web前端)
    在electron-vue项目中使用element-ui
    使用electron-vue搭建桌面应用程序项目
    Electron是个啥?
    2月11日-寒假进度11
    2月10日-寒假进度10
    2月9日-寒假进度09
  • 原文地址:https://www.cnblogs.com/wangshuai/p/1635695.html
Copyright © 2011-2022 走看看