事务级别形同虚设?

该对象不能为空 2012-06-07 10:49:02
设置事务级别为 IsolationLevel.ReadUncommitted 但还是把目标表给锁了,无法查询。
谁能帮忙分析下?

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();
}


另外这段代码是在一个线程中执行。
...全文
89 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotaxe 2012-06-07
  • 打赏
  • 举报
回复
你设置事务级别为 IsolationLevel.ReadUncommitted,只是在你的事物里可以脏读,既读取其它未提交事务. 不代表你的事务里更改后未提交不加锁,这样事务就没有意义了
hack_pan 2012-06-07
  • 打赏
  • 举报
回复

修改Read(select)的环境的为:读未提交

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧