http://expert.csdn.net/Expert/topic/1556/1556370.xml?temp=.9977686

解决方案 »

  1.   

    我是按照那个逻辑写的,我的问题是从第一个read中取得id后,要去第二个表中取得值,再修改,这样再都第二个read时,他要我现关掉第一个read,
    “然后分别写SqlCommand
    每个Command的连接都用tran.Connection
    然后设定Command.Transaction = tran;”
    上面的分别写SqlCommand写是不是用不同的command对象啊
      

  2.   

    command对象不同,但连接是一个,你可以:
    1.把这个功能写成一个存储过程,执行一次就可以
    2.使用不同的连接(不推荐,性能问题)
      

  3.   

    >>我的问题是从第一个read中取得id后,要去第二个表中取得值,再修改,这样再都第二个
    >>read时,他要我现关掉第一个read,首先, 看不出你这里需要事务干什么。
    明明是两次select + 一次 update 这要事务么???设计的错误,导致你的问题无法解决
      

  4.   

    为什么不能将两个read用关联的方法合为一个DataReader?
    同时取得id和值?
      

  5.   

    两个datareader不能同时用一个connection
    把一个换成dataset不就行了
      

  6.   

    谢谢各位,我是要读主表的id后删除主表的记录,然后凭主表的id去循环删除字表的多条相关记录,每删除一个子表记录都要去修改货品表的相应记录的数量和单价,因此在删除子条目表时同时读取货品的id 这样就需要事务且不同的id
    其中“一个换成dataset不就行了”这个怎么用啊
    谢谢