我有一个 ASP.NET 4.0 C# Web 应用程序,它允许多个用户同时更新 SQL Server DB 中的行。我正在尝试提出一个快速系统,该系统将阻止 USER1 更新自 USER1 上次刷新页面以来 USER2 更新的行。
我遇到的问题是我的网络应用程序总是更新行,即使我认为它不应该。但是当我手动运行查询时,它只会在我认为应该更新时更新。
这是我在 C# 中的 SQL 查询:
SQLString = "update statuses set stat = '" + UpdaterDD.SelectedValue +
"', tester = '" + Session["Username"].ToString() +
"', timestamp_m = '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") +
"' where id IN (" + IDs + ") and timestamp_m < '" + PageLoadTime + "';";
这是一个“现实世界”的例子:
SQLString = "update statuses set stat = 'PASS', tester = 'tester007',
timestamp_m = '2013-01-23 14:20:07.221' where id IN (122645) and
timestamp_m < '2013-01-23 14:20:06.164';"
我的想法是,只有在用户上次加载页面后没有其他用户更改此行时,这才会更新。PageLoadTime
如您所见,我已将其格式化为与我的 SQL Server DB 相同的格式DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
,但仍有问题。
有谁知道为什么我得到两个不同的结果?我想做的甚至可能吗?