Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据库未根据datetime c更新为true#_C#_.net - Fatal编程技术网

C# 数据库未根据datetime c更新为true#

C# 数据库未根据datetime c更新为true#,c#,.net,C#,.net,我有一个代码需要在浏览器打开一小时后在数据库中更新为true,但问题是数据库没有更新为true(默认情况下为false)。请帮我找出错误。我是C#的新手 这是永远无法实现的,因为您使用的“DateTime.Now”的位置将提供相同的时间,您需要在浏览器的开始处存储DateTime值,然后在if条件中使用该值来比较是否为一小时。如果是winforms 在窗体上放置计时器控件 将计时器刻度设置为1000=1秒 说 1000*60*60=一小时 在定时器控制滴答声事件上输入上述代码 它将在每小时后立即

我有一个代码需要在浏览器打开一小时后在数据库中更新为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)
....