一个ASP。NET的数据库管理程序在一幢楼房里有单元,每个单元里有房间,每个房间里有住户。
当删除正幢楼房的的时候,同时要删除所有的单元,房间和住户。也就是同时在四个表里把和这幢楼房相关的内容都删除。如果不采用事务处理的话,什么情况下会出错?
怎么样测试才能证明不采用事务处理确实出错了呢?

解决方案 »

  1.   

    一个ASP。NET的数据库管理程序在一幢楼房里有单元,每个单元里有房间,每个房间里有住户。
    当删除正幢楼房的的时候,同时要删除所有的单元,房间和住户。也就是同时在四个表里把和这幢楼房相关的内容都删除。如果不采用事务处理的话,什么情况下会出错?
    怎么样测试才能证明不采用事务处理确实出错了呢?
      

  2.   

    这个很简单,你可以假设某个删除失败但是程序依然执行比如在删除2单元205房的时候删除错误,程序依然执行。。那么可以这样写
    如果你的删除是采用了for循环或者其他循环
    可以这样
    if(opid = "2205") continue;这个是跳出此次循环即不删除该房间信息(相当于删除失败)但是如果你不回滚程序那么2单元的房间在删除失败同时已经被删除了而且不可还原