黑马程序员技术交流社区

标题: 事务处理 [打印本页]

作者: 黄冉    时间: 2012-12-1 10:03
标题: 事务处理
在ADO.NET中,可以使用Connection和Transaction对象控制事务。事务处理需要一个数据库连接以及一个事务处理对象。ADO.NET事务实际上是把事务上下文传递到数据库层,如果事务中发生一个错误,数据库就会自动回滚。本地事务由System.Transactions提供的可提升性能的事务管理器进行管理。当这些事务由数据资源控制的时候,它们具有高效性并易于管理。例如:
public int sqltran(string[] sqlstr)
        {
            string connstring = "....";//数据库连接字符串
            SqlConnection cn = new SqlConnection(connstring);
            SqlCommand cmd = new SqlCommand();
            int j = sqlstr.Length;
            try
            {
                cn.Open();
            }
            catch (SqlException e)
            {
                throw new Exception(e.Message);
            }
            SqlTransaction trans = cn.BeginTransaction();//事务开始
            try
            {
                cmd.Connection = cn;
                cmd.Transaction = trans;
                foreach (string str in sqlstr)
                {
                    cmd.CommandText = str;
                    cmd.ExecuteNonQuery();
                }
                trans.Commit();//提交事务
                return 0;
            }
            catch (SqlException e)
            {
                trans.Rollback();//事务回滚
                return -1;
            }
            finally
            {
                cmd.Dispose();//释放事务
                cn.Close();//关闭事务连接
            }
        }
在上面的这段代码中,方法 sqltran的作用就是接受一个包含SQL语句的数组,然后在事务中执行数组中的每一条SQL语句
作者: 许庭洲    时间: 2012-12-1 22:46
值得学习ing!
作者: 张文    时间: 2012-12-2 02:35
最后一句话是亮点。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2