C#做一个windows服务来监控oracle数据库表空间中某个表中的数据更新的操作!
不停监视表中数据.
 
      PS:A数据库里面的a表B数据库里面的b表要求a表里面的字段名与b表里面的字段相同,如果a表里面的记录在b表中不存在,那么a表里面的记录就完全同步过去

解决方案 »

  1.   

      我想问的问题是windows服务我没怎么用过,能否贴出点列子呢?现在我不是在纠结用什么存储过程,触发器来进行表操作!
      

  2.   

    很简单的
    只用在服务里onstart函数直接写一个timer,可以自己设启动时间间隔,然后在timer函数里写检查更新的sql语句就可以了
      

  3.   

    托个time控件上去么,还要对哪些属性进行设置???
      

  4.   

    看http://apps.hi.baidu.com/share/detail/17491278
      

  5.   

    和写 winform 一样  新建一个服务项目 里面会有启动服务前后方法 和 停止服务前后方法  在启动后方法中注册一个 System.Timers.Timer timer = new System.Timers.Timer();  
    的事件(注意  不要用 forms下面的timer )
    在 时间时间里面写同步就OK了  
    建完项目 看看就会  没有什么麻烦的 
    只是注意下 服务的启动和 停止都是要有时间过程的 不要 在代码中启动立即停止 或者 停止立即启动
    启动停止时 一定要判断服务状态
      

  6.   

    进来学习一下如何写服务,这个在winform开发中还是用得到的...
      

  7.   


            public static void BeginDo()
            {
                while (true)
                {
                    if (Flag)
                    {
                        GC.Collect();
                        try
                        {
                            string sql = "select JobID from Jobs where IsLocked=0 and IsClose=0 order by JobID";
                            DataTable data = SqlHelper.GetData(sql, null, SqlHelper.ConnStr);
                            foreach (DataRow row in data.Rows)
                            {
                                SubThread subThread = new SubThread(int.Parse(row["JobID"].ToString()));
                                ThreadList.Add(subThread);
                                subThread.Start();
                            }
                        }
                        catch (Exception ex)
                        {
                            System.Diagnostics.EventLog.WriteEntry("专题平台后台服务异常", ex.Message);
                        }
                    }
                    //暂停5分钟
                    Thread.Sleep(300000);
                }
            }
      

  8.   

    -,创建服务框架,向服务添加需要功能如下
    protected override void OnStart(string[] args)
            {
                RunMyTimer();
            }        protected override void OnStop()
            {
            }        /// <summary>
            /// 服务器运行定时器
            /// </summary>
            private void RunMyTimer()
            {
                myTimer = new System.Timers.Timer();
                myTimer.Interval = 1000; //没隔一秒跑一次
                myTimer.Elapsed += new System.Timers.ElapsedEventHandler(MTimedEvent);
                myTimer.Enabled = true;
            }
            /// <summary>
            /// 自定义定时器事件
            /// </summary>
            /// <param name="source"></param>
            /// <param name="e"></param>
            private void MTimedEvent(object source, System.Timers.ElapsedEventArgs e)
            {
                DataSet ds = this.GetDataFromA();//从数据库A获取a表的记录集
                if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    //校验每条记录是否存在存在你B数据库的b表,如果没有新增一条记录
                }
            }