SqlHelper类中:
方法A为:public int ExecuteNonQuery(string sql){} //(用作增删改)
方法B为:public DataTable ExecuteDataTable(string sql){} //(用作查询)
在方法A中调用或者方法A中的方法调用了方法B,则会报:该事务已挂起的错误
请问:如果我一定要这样做的话,该怎么去处理这个错误???
创建2个DB,事务就不会冲突
两个方法是不是使用了同一个transaction。
普通的增删改和,查询, 怎么会报告事务问题呢
估计是执行方法A的时候锁表了,然后执行不了查询吧。。。。
可能是你执行的时候没有关闭连接,在执行一个时就要关闭,再次执行时要开启,执行完后就关闭。如果需要在同一事务中执行可以用同一个SqlConnection 对象, SqlConnection对象中把事务开启后,就会在同一个事务中执行。
两个方法是不是使用了同一个transaction。你执行其中一个方法的时候没有关闭连接。
一边增删改,一边同时查询,这样查的结果是不准确的,所以用到了事务。而你非要事务交叉,你这安的什么心?道不同,不相为谋。
如果是同一个数据库,同一个表的话 事务会将表进行锁定,知道你提交了事务之后才执行下一个事务开启。你可以定义一个全局事务参数,一起来使用
不开2个事务,事务可以支持多个提交的,但是你的SQLconn连接不一样的话就要开2个事务了因为数据库不同了,两个事务是不相干的