0

私はSQL Server 2008を使用しており、ユーザーの最後のログインがデータベースに追加された最後のメッセージの日付よりも前の場合に通知を表示しようとしています.

通知テキストを非表示にするために使用asp:panelしていますが、正常に機能しますが、何らかの理由で、Compare使用しているメソッドが期待される結果を返さない理由がわかりません。

たとえば、ユーザー ログインを に設定01/05/2013し、データベースの最新の日付が である01/04/2013場合、結果が 0 より大きい int であると予想し、if 条件をエスケープします。残念ながら、それは起こらず、メソッドは常に if 条件に入ります。

castingfrom Dateto DateTime;と関係があるのではないかと思います。アイデアをお願いします。

DateTime userEntry = new DateTime(2012, 01, 05);
DateTime lastMsg = new DateTime();
lastMsg = Convert.ToDateTime(ds.Tables[0].Rows[0]["Date"]);
int compared = DateTime.Compare(userEntry, lastMsg);
if (compared < 0) { notification.Visible = true; }
4

1 に答える 1

0

「2013 年 1 月 5 日」を比較しようとしているとのことですが、コードは 2012 年の日付を生成しています。

DateTime userEntry = new DateTime(2012, 01, 05); // 2012 date

私はあなたが本当に意味したと思います:

DateTime userEntry = new DateTime(2013, 01, 05); // 2013 date
于 2013-01-05T17:34:18.227 に答える