C# 数据库未根据datetime c更新为true#
我有一个代码需要在浏览器打开一小时后在数据库中更新为true,但问题是数据库没有更新为true(默认情况下为false)。请帮我找出错误。我是C#的新手 这是永远无法实现的,因为您使用的“DateTime.Now”的位置将提供相同的时间,您需要在浏览器的开始处存储DateTime值,然后在if条件中使用该值来比较是否为一小时。如果是winforms 在窗体上放置计时器控件 将计时器刻度设置为1000=1秒 说 1000*60*60=一小时 在定时器控制滴答声事件上输入上述代码C# 数据库未根据datetime c更新为true#,c#,.net,C#,.net,我有一个代码需要在浏览器打开一小时后在数据库中更新为true,但问题是数据库没有更新为true(默认情况下为false)。请帮我找出错误。我是C#的新手 这是永远无法实现的,因为您使用的“DateTime.Now”的位置将提供相同的时间,您需要在浏览器的开始处存储DateTime值,然后在if条件中使用该值来比较是否为一小时。如果是winforms 在窗体上放置计时器控件 将计时器刻度设置为1000=1秒 说 1000*60*60=一小时 在定时器控制滴答声事件上输入上述代码 它将在每小时后立即
它将在每小时后立即调用您有任何例外吗?你能确保连接正常吗?并且,可能不相关,但是否要在1小时后更新表中的所有记录?您必须实际等待时间增加。基本上你所做的是:
inta=3;int b=a+2;如果(a>b){/*为什么会发生这种情况?*/}
如果你确实有一些计时器、循环、事件或其他什么东西,你应该将其包含在你的其余代码中。另外,你说的是什么“浏览器”?这是一个winforms应用程序。这与WebBrowser
控件有什么关系吗?我实际上只是读取了代码本身,逻辑是错误的,它永远不会到达if()
body.C#直到时间到达所需的时间才会阻塞。在设置dtt
并将其与现在的dtt
进行比较的过程中,我怀疑哪怕是一毫秒都不会过去。因此,假设时间是12:00:00,并且您将dtt
设置为12:00:00+1小时,您将得到13:00:00。在下一行,当时间仍然是12:00:00时,您会问“12:00:00是在13:00:00之后吗?”
DateTime dtt = DateTime.Now.AddHours(1);
//after 1 hour update to true
if(DateTime.Now > dtt)
{
try
{
SqlConnection connection = new SqlConnection("....");
string selectQuery = @"UPDATE tester SET have_test = 'T'";
connection.Open();
SqlCommand command = new SqlCommand(selectQuery, connection);
command.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
try
{
SqlConnection connection = new SqlConnection("...");
string selectQuery = @"UPDATE tester SET have_test = 'F'";
connection.Open();
SqlCommand command = new SqlCommand(selectQuery, connection);
command.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
DateTime dtt = DateTime.Now.AddHours(1);
//after 1 hour update to true
if(DateTime.Now > dtt)
....