A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄冉 中级黑马   /  2012-12-1 10:03  /  1064 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在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语句

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
最后一句话是亮点。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马