0

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

4

2 回答 2

2

.NetDateTime.Now从执行代码的任何计算机获取时间。

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

select getdate() 

http://msdn.microsoft.com/en-us/library/ms188383.aspx

于 2013-07-04T03:56:56.953 回答
0

除了 Derek 的解决方案,我建议您查看代码中缓存 DateTime.Now() var 的位置。可能是您在代码 loigc 的开头捕获了它,因此,根据条件,获取日期时间和将其传递给服务器之间的经过时间可能会有很大差异。

我的建议(在没有代码的情况下)是确保对变量的日期时间缓存实际上是调用 sqlserver 之前的最后一个操作(当然,除非监控方法的持续时间很重要——在这种情况下,需要两个DateTime 变量,一个在方法的顶部,一个在方法的底部,并且都通过)。

于 2013-07-04T09:05:24.617 回答