C# 现在在.NET中有时会出错吗?

C# 现在在.NET中有时会出错吗?,c#,asp.net-mvc-3,datetime,C#,Asp.net Mvc 3,Datetime,在我的web应用程序中,当用户单击“开始”按钮时,我通过DateTime.Now记录时间并将其保存到sql server db。 此操作在一天内使用多次。有时,一两天,它会记录错误的时间。 我跟踪了所有代码,以确保代码中没有任何地方更新此列值。 请注意,我的web应用程序完全在客户端计算机(IIS、sql server express)上运行。 我想可能是约会时间。现在记错时间了。 请给出一些建议?Net日期时间。现在从执行代码的计算机获取时间 我建议您改为从数据库服务器获取日期和时间。假设这是

在我的web应用程序中,当用户单击“开始”按钮时,我通过
DateTime.Now
记录时间并将其保存到sql server db。 此操作在一天内使用多次。有时,一两天,它会记录错误的时间。 我跟踪了所有代码,以确保代码中没有任何地方更新此列值。 请注意,我的web应用程序完全在客户端计算机(IIS、sql server express)上运行。 我想可能是约会时间。现在记错时间了。
请给出一些建议?

Net
日期时间。现在
从执行代码的计算机获取时间

我建议您改为从数据库服务器获取日期和时间。假设这是SQL Server,您将使用如下语句:

select getdate() 

除了Derek的解决方案,我建议您查看代码中缓存DateTime.Now()变量的点。可能是您在代码开始时捕捉到了这一点,因此,根据不同的条件,从获取DateTime到将其传递给服务器之间所用的时间可能会有很大的差异


我的建议(在没有代码的情况下)是确保变量的datetime缓存实际上是调用sqlserver之前的最后一个操作(当然,除非监控方法的持续时间很重要-在这种情况下,获取两个datetime变量,一个在方法顶部,一个在方法底部,并同时传递这两个变量).

你说的“错误的时间”是什么意思?马上就走?世纪?这是可能的,因为它是基于用户的机器,不同的时区使它成为不同的一天。或者你可能知道事实并非如此。@MillDoll,你能不能用你正在使用的语言(C#,VB.net)和框架(WPF,WinForms,ASP.net)来标记这个问题?如果你要存储到数据库中,你真的应该存储
DateTime.UtcNow
。将其转换为本地时间显示。我的web应用程序由asp.net mvc3编写,并使用Sql server express。这是一个小应用程序,所以我可以部署到Windows7机器上。所以我期望DateTime。现在正在这台机器上记录当前的日期时间。我不认为我的客户更改了他们机器中的时间。是的,我想在机器的时钟中记录当前日期时间,并将其记录到db以便以后计算,我使用Entity Framework将其保存。从这一点上,我刚刚从db中得到了值。您的代码中将有一个bug。我建议你在上面的问题中发布你的代码。也许你最好的策略是尝试通过编写一个只有最少代码的示例应用程序来重现这一点。通过这样做,你几乎肯定会自己发现问题所在。