SQL Server の日付レコードをシステム日付と比較しようとしています。私の例では、ユーザーは最初に自分の名前と生年月日で登録し、データベースに保存します。ユーザーは自分の名前のみを使用して Web アプリケーションにログインします。ログイン後、彼の名前は"Welcome "player name
「を使用して」と書かれた側に表示されSessions
ます。
彼の名前に加えて表示しようとしているのは、彼の生年月日がシステムの日付と一致する場合に「お誕生日おめでとう」というメッセージです。で作業してみましたSystem.DateTime.Now
が、年も比較していると思いますが、本当に欲しいのは日と月だけです。提案や助けをいただければ幸いです。
ログインページのコード:
protected void Button1_Click(object sender, EventArgs e)
{
String name = TextBox1.Text;
String date = System.DateTime.Today.ToShortDateString();
SqlConnection myconn2 = new
SqlConnection(ConfigurationManager.ConnectionStrings["User"].ToString());
SqlCommand cmd2 = new SqlCommand();
SqlDataReader reader;
myconn2.Open();
cmd2 = new SqlCommand("Select D_O_B from User WHERE Username = @username",
myconn2);
cmd2.Parameters.Add("@username", SqlDbType.NVarChar).Value = name;
cmd2.Connection = myconn2
cmd2.ExecuteNonQuery();
reader = cmd2.ExecuteReader();
while (reader.Read().ToString() == date)
{
Session["Birthday"] = "Happy Birthday";
}
}
注: 上記のコードで同じリーダーを使用していますが、ここのリーダーは別の接続を使用しています。また、reader.Read()
とは異なりreader.HasRows
ますか?
Web アプリ ページのコード:
string date = (string)(Session["Birthday"]); // Retrieving the session
Label6.Text = date;