首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

事务级别形同虚设?解决思路

2012-06-11 
事务级别形同虚设?设置事务级别为 IsolationLevel.ReadUncommitted 但还是把目标表给锁了,无法查询。谁能帮

事务级别形同虚设?
设置事务级别为 IsolationLevel.ReadUncommitted 但还是把目标表给锁了,无法查询。
谁能帮忙分析下?

C# code
                using (SqlConnection conn = new SqlConnection(connectionString))                {                    conn.Open();                    SqlCommand cmd = new SqlCommand();                    cmd.Connection = conn;                    SqlTransaction tx = conn.BeginTransaction(IsolationLevel.ReadUncommitted);                    cmd.Transaction = tx;                    SqlBulkCopy sbc = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, tx);                    string sql = string.Empty;                        for (int n = 0; n < listSql.Count; n++)                        {                            string strsql = listSql[n];                            if (strsql.Trim().Length > 1)                            {                                cmd.CommandText = strsql;                                sql = strsql;                                cmd.ExecuteNonQuery();                            }                        }                        sbc.DestinationTableName = tableName;                        sbc.WriteToServer(dt);                        tx.Commit();                }


另外这段代码是在一个线程中执行。

[解决办法]
你设置事务级别为 IsolationLevel.ReadUncommitted,只是在你的事物里可以脏读,既读取其它未提交事务. 不代表你的事务里更改后未提交不加锁,这样事务就没有意义了

热点排行