C#执行SQL语句报超时已过期

作项目的过程中,经常会遇到SQL查询超时的问题。今天就碰到了,涉及到事务的处理,在事务没有提交时,需要查询新insert进来的数据,结果始终没有返回结果,报查询超时已过期。查询了许多资料,还是没有解决。看了下事务隔离选项的解释,考虑是否因为新的连接查询不能访问未提交的事务,试着把隔离选项改为可访问脏数据,然后用使用事务的OLEDBCommand执行查询,返回结果,发现正常。看来,就是因为这个问题。大家遇到此类问题的时候可以考虑一下,看看主要症状,是否因为过多的update、insert、select在同一事务中,这样,在未提交前,可能会因为查询堵塞而超时;是否因为事务隔离选项设置的不正确,不能实现需要的功能;是否网络状况不好,可以考虑将查询超时设置长一点。有时,用OleDb的东西就是比较麻烦,转而用Sql的一套类,一些问题就没有了,也可以考虑一下替换实现方式。

原文地址:https://www.cnblogs.com/tristinjet/p/1602003.html