做了一个C#的小程序,定时把数据从sql server中取出,并放到oracle中,读两个数据库前都打开了事务,数据处理完后commit,但经常出现数据丢失的问题,在oracle中的数据与从sql server中读取的数据的数量不一致,请高手分析一下原因~程序的结构如下:
class father()
{
   void BeforeExc()
   { 
     打开连接...打开事务
   }   void AfterExc()
  { 
    关闭连接
  }   virtual void OnExc()
   {   }
}class CA :father
{
   override void OnExc()
   {
      try
     {
        从sql server中取数据...
        插入oralce中..        commit();
      }
      catch.....回滚    }
}

解决方案 »

  1.   

    跟踪一下,读出来的数据和insert的数据,是不是insert出错了。
      

  2.   

    vs2005中的有个事物的类可以跨不同的数据库,很好用的
    命名空间好像是transcation
    类是TransactionScope
      

  3.   

    多数楼上各位,我用的是2003,也作了信息记录,不过事务没出错,提交成功了.insert也没有错误.
      

  4.   

    数据都被程序吃了! :)
     没有看全部代码不好说. 你只要相信微软和Oracle的数据库不会出错(极少),就应该看看自己的执行方式.