首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

windows service 一次写入两条相同数据的有关问题!

2012-01-03 
windows service 一次写入两条相同数据的问题!!如题:我写了一个windows service,往数据库中自动写入指定数

windows service 一次写入两条相同数据的问题!!
如题:我写了一个windows service,往数据库中自动写入指定数据。但是总是发现一次写入两条相同数据。是为什么呢?

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Xml;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Timers;

namespace WindowsService1
{
  public partial class gzjh : ServiceBase
  {


  public gzjh()
  {
  InitializeComponent();
  }

  protected override void OnStart(string[] args)
  {
  // TODO: 在此处添加代码以启动服务。
  timer1.Interval = 1 * 60 * 1000;
  timer1.Enabled = true;
  timer1.Elapsed +=new ElapsedEventHandler(timer1_Elapsed);
   
  }

  protected override void OnStop()
  {
  // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
  timer1.Enabled = false;
  }

  private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
  {
  timer1.Enabled = false;
  string strconn = "user id=sa;password=123456;Database=wpdb;server=db";
  string strcomm = "insert into sysplan (djh,fbr,jsr,zt) values ('SYS20090720001','SYSTEM','SYSTEM','0')";
  SqlConnection sqlconn = new SqlConnection(strconn);
  sqlconn.Open();
  SqlCommand sqlcomm = new SqlCommand(strcomm, sqlconn);
  SqlDataReader sdr = sqlcomm.ExecuteReader();
  sqlconn.Close();
  timer1.Enabled = true;
  }

  }
}


[解决办法]

C# code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.ServiceProcess; using System.Text; using System.Xml; using System.Data.Sql; using System.Data.SqlClient; using System.Timers; namespace WindowsService1 {     public partial class gzjh : ServiceBase     {         public System.Timers.Timer serviceTimer1 = new System.Timers.Timer();//定时器        public gzjh()         {                         serviceTimer1.Elapsed += new System.Timers.ElapsedEventHandler(serviceTimer1_Elapsed);            InitializeComponent();         }         void serviceTimer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)        {            string strconn = "user id=sa;password=123456;Database=wpdb;server=db";             string strcomm = "insert into sysplan (djh,fbr,jsr,zt) values ('SYS20090720001','SYSTEM','SYSTEM','0')";             SqlConnection sqlconn = new SqlConnection(strconn);             sqlconn.Open();             SqlCommand sqlcomm = new SqlCommand(strcomm, sqlconn);             SqlDataReader sdr = sqlcomm.ExecuteReader();             sqlconn.Close();         }        protected override void OnStart(string[] args)        {            serviceTimer1.Interval = 1 * 60 * 1000;            serviceTimer1.Enabled = true;        }        protected override void OnStop()        {            serviceTimer1.Enabled = false;        }    }} 

热点排行