Sql-事务
2015-09-25 16:31
344 查看
private void Form1_Load(object sender, EventArgs e) { SqlConnection con = new SqlConnection(@"SERVER=localhost;UID=sa;DATABASE=GG;MultipleActiveResultSets =true;PWD=123456"); con.Open(); ////创建事务并赋值 SqlTransaction tran= con.BeginTransaction(); //创建SqlCommand实例 SqlCommand _delete=con.CreateCommand(); SqlCommand _insert = con.CreateCommand(); SqlCommand _select = con.CreateCommand(); SqlCommand _update = con.CreateCommand(); //通过同一个SqlConnection创建的SqlCommand,每一个都需要事务,否则报错 _delete.Transaction = tran; _insert.Transaction = tran; _select.Transaction = tran; _update.Transaction = tran; try { _delete.CommandText = "delete from t_user where no=11 or no=12"; _delete.ExecuteNonQuery(); _insert.CommandText = "insert t_user (no,age,name) values(11,111,1111)"; _insert.ExecuteNonQuery(); ////在SQL语句未执行完提交,后面的语句报错不会回滚 ////tran.Commit(); _update.CommandText = "update t_user set name=12,no=12,age=12 wh2ere no=11"; _update.ExecuteNonQuery(); _select.CommandText = "select * from t_user"; SqlDataAdapter adt = new SqlDataAdapter(_select); DataTable dt = new DataTable(); adt.Fill(dt); dataGridView1.DataSource = dt; //提交事务(在与本事务相关sql语句执行完之后提交) tran.Commit(); } catch (Exception ex) { //从挂起状态回滚事务,不需要写tran.Rollback();,报错会自动运行 //tran.Rollback(); MessageBox.Show(ex.Message.ToString(), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Question); } finally { con.Close(); } }
相关文章推荐
- 谈谈SQL 语句的优化技术 (2)
- Log4Net使用指南之用log4net记录日志到数据库(含有自定义属性)------附Demo例子源代码
- T-SQL语句优化的常见技巧
- 谈谈SQL 语句的优化技术 (1)
- SQLServer中的服务器角色与数据库角色
- Oracle Hint学习之二(忽略hint的情形)
- sql 时间行列转换求总和
- 如何让Sqlite支持Entity Framework Code-First
- MySQL-JDBC
- Oracle 树操作(select…start with…connect by…prior)
- Mysql在大型网站的应用架构演变
- vsftpd基于本地用户和mysql认证配置
- linux安裝mongodb
- mysql__基础02
- telnet IP不通/sybase central工具无法连接到数据库
- mysql__基础01
- SQL SERVER中增加删除约束
- MySQL详解--锁
- 关于ubuntu下 mysql对表名区分大小写的解决办法
- Redis windons安装