看看帮助里的Transaction.IsolationLevel的说明,可能会有帮助
解决方案 »
- C# 多线程,为什么abort了之后再start就出错
- C#中用手动输入的方法获取数字,该用什么控件?本人新手
- C# 如何操作XML文件 来删除一个节点.. 在线等待求解..
- [pipi]用鼠标选择dataGridView中某一行,想的到这一行第一个CELL的值,语句如何写? 谢谢了~~~~
- 如何计算精确的时间?
- 哈希表的匹对
- 怎么将C#中的图片保存到SQL中的image字段中
- 关于网站的三层架构
- 使用C#连接到ORACLE 8.1.6问题
- 如何实现点击CheckListBox一项,不回发.在客户端的一个ListBox里面增加一项.
- Pop3收取邮件的问题?
- 用FinControl可以找到一个子控件,那么是否有类似的方法可以找到一个Component的子类实例?
trans.IsolationLevel = IsolationLevel.ReadUncommitted;
...试试
试过了,没用,仍旧是超时我觉得好象和脏读没有关系,说明一下,我循环用的表是C,第一条插入语句是针对A,第二条插入多次的语句是针对B表三张表没有什么关系,所以觉得和脏读应该没有关系
SqlCommand cmd = new SqlCommand(sqltemp,"另一个连接,初始化没问题");
SqlDataReader dr = cmd.ExecuteReader();把这几句提前到另一个连接的开始前
没有理解你的意思,放到另一个连接前和放到这里有什么区别吗?另一个连接我用了一个成员变量(C++写多了),不知道合适不合适,构造里new的,析构里close的遍历的那个SQL就是建立在这个连接上的
在另一个连接操作数据库,并且还没有提交Commit
时
调用另一个连接的读方法
就会出现这种读超时的问题你提前后
读操作是在未开始事务前
应该是可以的如果还是不行
就是用SqlDataAdapter将数据读取到DataSet(本地内存中)
应该就可以避免这个问题了
在
SqlTransaction trans = con.BeginTransaction();
cmd_tran.Transaction = trans;
后再定義一個trans1
SqlTransaction trans1 = con.BeginTransaction();
cmd.Transaction = trans1;
對于cmd 和cmd_tran用不同的trans1
都成功時用
trans.Commit();
trans1.Commit();
不成功時用
trans.Rollback();
trans1.Rollback();這樣是不是可以的啊!
你不是也测试了
如果取消事务
你的代码就正常了吗关键还是在数据库处理事务的机制上
在Sql Server上处理时
就碰到这种问题至于其他数据库会不会出现
我没试过
就不清楚了
:)