huyu123333333
2018-03-05 08:17
采纳率: 60%
浏览 1.1k

C#中事务挂起的问题 求帮助

SqlHelper类中:
方法A为:public int ExecuteNonQuery(string sql){} //(用作增删改)
方法B为:public DataTable ExecuteDataTable(string sql){} //(用作查询)

在方法A中调用或者方法A中的方法调用了方法B,则会报:该事务已挂起的错误

请问:如果我一定要这样做的话,该怎么去处理这个错误???

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • ttstts 2018-03-05 08:26
    已采纳

    创建2个DB,事务就不会冲突

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 杨怀奎 2018-03-05 08:38

    两个方法是不是使用了同一个transaction。

    评论
    解决 无用
    打赏 举报
  • 似水骄阳Somnus 2018-03-05 08:38

    普通的增删改和,查询, 怎么会报告事务问题呢

    评论
    解决 无用
    打赏 举报
  • lghopen 2018-03-05 09:37

    估计是执行方法A的时候锁表了,然后执行不了查询吧。。。。

    评论
    解决 无用
    打赏 举报
  • xialxl 2018-03-09 00:52

    可能是你执行的时候没有关闭连接,在执行一个时就要关闭,再次执行时要开启,执行完后就关闭。如果需要在同一事务中执行可以用同一个SqlConnection 对象, SqlConnection对象中把事务开启后,就会在同一个事务中执行。

    评论
    解决 无用
    打赏 举报
  • 雪满西京 2018-03-14 08:03

    两个方法是不是使用了同一个transaction。你执行其中一个方法的时候没有关闭连接。

    评论
    解决 无用
    打赏 举报
  • Fieldsand 2018-03-17 10:44

    一边增删改,一边同时查询,这样查的结果是不准确的,所以用到了事务。而你非要事务交叉,你这安的什么心?道不同,不相为谋。

    评论
    解决 无用
    打赏 举报
  • freedombabyliang 2018-04-18 01:27

    如果是同一个数据库,同一个表的话 事务会将表进行锁定,知道你提交了事务之后才执行下一个事务开启。你可以定义一个全局事务参数,一起来使用
    不开2个事务,事务可以支持多个提交的,但是你的SQLconn连接不一样的话就要开2个事务了因为数据库不同了,两个事务是不相干的

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题