读书人

windows service 一次写入两条相同数据

发布时间: 2012-01-03 22:16:07 作者: rapoo

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;        }    }} 

读书人网 >.NET Framework

热点推荐