不能向数据库中写如数据

来源:百度知道 编辑:UC知道 时间:2024/06/04 00:48:16
以下为Windows Service中的启动服务
protected override void OnStart(string[] args)
{
ThreadStart objThreadStart = new ThreadStart(threadTask);
Thread objThread = new Thread(objThreadStart);
objThread.Start();
}
public void threadTask()
{
while (true)
{
string strCon = "server=.;uid=sa;database=message";
SqlConnection objSqlConnection = new SqlConnection(strCon);
DateTime objDateTime = new DateTime();
int second = objDateTime.Minute;
if(second==20)
{
objSqlConnection.Open();
SqlCommand objSqlCommand = new SqlCommand("insert into info values(GETDATE(),'到扫')", objSqlConnection);
objSqlCommand.ExecuteNonQuery();
objSqlConnection.Close();
}
}
}
如去掉if判断则可以写入数据,加入if判断则不能写如数据.没有异常发生
对不起 我忘了 触发条件也到了....还是不能运行

DateTime objDateTime = new DateTime();
int second = objDateTime.Minute;

objDateTime 的是值不是当前时间,而是0001-1-1 00:00:00:000
所以second (分钟数)永远是0;
当前时间是DateTime.Now

因为没有执行到if(second==20)这一句

int second = objDateTime.Minute; 这句取到的是当前时间的分钟

当你当前时间的分钟是20的时候才会执行if里面的语句,入20:20,21:20等...

objDateTime.Minute 恒等于 0
所以 second==20 这个条件永远不成立,自然也不会存储数据