複数のユーザーが同時に SQL Server DB の行を更新できるようにする ASP.NET 4.0 C# Web アプリケーションがあります。私は、USER1 の最後のページ更新以降に USER2 が更新した行を USER1 が更新するのを止める簡単なシステムを考え出そうとしています。
私が抱えている問題は、Web アプリケーションが行を更新すべきではないと思っていても、常に行を更新することです。しかし、クエリを手動で実行すると、必要だと思われる場合にのみ更新されます。
これは 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")
が、まだ何かが正しくありません。
2つの異なる結果が得られる理由を誰かが知っていますか? 私がやりたいことは可能ですか?