日期:2014-05-17  浏览次数:20810 次

求助mssql事务 SqlTransaction 不起作用

SqlConnection st = new SqlConnection(DAL.CONN_STRING);
            st.Open();
            SqlTransaction sc = st.BeginTransaction();
            try
            {
                i = SqlLibrary.SqlHelper.ExecuteNonQuery(DAL.CONN_STRING, CommandType.Text, sql);
                if (i == 1)
                { j = SqlLibrary.SqlHelper.ExecuteNonQuery(DAL.CONN_STRING, CommandType.Text, arrlist);
 }
                else
                {
                    i = 0;
                    sc.Rollback();
                }
            }
            catch (Exception ex)
            {
                i = 0;
                sc.Rollback();
            }

C#操作mssql事务 SqlTransaction
不起作用是怎么回事?
刚发现的问题。数据没回滚
以前没出现过这个情况 
是不是数据库在建表的时候,数据引擎要选择?
像mysql那样?

------解决方案--------------------
你这会回滚在有鬼了。
SqlLibrary.SqlHelper.ExecuteNonQuery(DAL.CONN_STRING, CommandType.Text, sql);


sc在哪?sc根本没有用上,回滚什么啊?
------解决方案--------------------
 i = SqlLibrary.SqlHelper.ExecuteNonQuery(DAL.CONN_STRING, CommandType.Text, sql);
这个应该是你自己封装的command吧!你都没有把Transaction带入进command,怎么执行事务呢!
把方法重写下吧
------解决方案--------------------
两个数据库连接,一个开了事务没去执行任何SQL语句,另一个没开事务去执行了你的sql语句了。