执行 testCommand.ExecuteNonQuery  他返回什么,在我的理解中,一般调用Sqlcommand的ExecuteNonQuery是在执行数据库的insert,update,delete ,而不是select

解决方案 »

  1.   

    ExecuteNonQuery 对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。
    是否应该改成
    int rows =testCommand.ExecuteNonQuery
      

  2.   

    是不是rows>1的时候没启动事务,就直接回滚了!
    或testCommand.ExecuteNonQuery所执行的语句出错了吧?
    这点代码我也看不出什么了:)
      

  3.   

    在rows>1的时候,我就是不想让事务执行,即不写提交的语句也不写回滚的语句。在这个事务后面我还有一些其他的数据库操作,而rows<=1的时候,后面的数据库操作就没有问题。
    当rows>1的时候,后面的语句就会提示布式事务已完成。请将此会话登记到新事务或 NULL 事务中。我想可能是前面的事务没有正确结束的问题,可就是不知怎么写??都急死人了!
      

  4.   

    不可能的,系统生成一个事务的时候@@tranacount加1,commit后-1,直到为0,如果直接rollback的话@@trancount也为0,如果不为0的话,系统启动异常处理,提示事务没有完成
      

  5.   

    实际上你可以这样变通阿,如果row>1的时候不起动事务,如果小于1的时候启动事务,不就解决你的问题了吗
      

  6.   

    lh1979(rocket)的主意真好!谢谢