テーブルTimeTableに2つの列があります
start_date
(形式はDD-MM-YYYY
)end_date
ログインページからログインする場合、現在の日付がとの間であることを確認したいと思いstart_date
ますend_date
。もしそうなら、私はログインすることができます。
C#.. asp.net ..で比較する方法は?
ログインページに現在の日付を正常に印刷しました。
lblMsg.Text= DateTime.Now.ToString("dd-MM-yyyy");
私はc#でasp.netを使用しています
start_date end_date
8/2/2013 12:00:00 AM 10/2/2013 12:00:00 AM
DD / MM/YYYY形式で日付を保存するためのコード
CultureInfoプロバイダー=CultureInfo.InvariantCulture;
DateTime startdate = DateTime.ParseExact(tbstartdate.Text.ToString().Trim(), "dd/MM/yyyy", provider);
DateTime enddate = DateTime.ParseExact(tbenddate.Text.ToString().Trim(),"dd/MM/yyyy",provider);
string sql = "INSERT INTO TimeTable(start_date,end_date)"
+ "VALUES (@startdate,@enddate)";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@startdate", SqlDbType.DateTime).Value = startdate;
cmd.Parameters.Add("@enddate", SqlDbType.DateTime).Value = enddate;
cmd.Prepare();
n = cmd.ExecuteNonQuery();
conn.Close();
ログインページで日付を確認するためのコード
CultureInfoプロバイダー=CultureInfo.InvariantCulture;
DateTime date = DateTime.ParseExact(DateTime.Now.ToString("dd/mm/yyyy"), "dd/MM/yyyy", provider);
// DateTime date=DateTime.Now.ToString("dd/mm/yyyy");
string query1 = "select * from TimeTable where ((start_date >= @date1 and End_date<= @date2) and UserType=@type)";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
SqlCommand com = new SqlCommand(query1, conn);
com.Parameters.Add("@type",dpusertype.SelectedItem.Text.ToString());
com.Parameters.Add("@date1",date);
com.Parameters.Add("@date2", date);
com.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
da.Fill(dt);
`if(dt.Rows.Count> 0)//テーブルのユーザーを比較
{
FormsAuthentication.RedirectFromLoginPage(txtFcode.Text, Persist.Checked);
Response.Redirect("~/DeptCoordinator/DeptCoordinator_homepage.aspx");
}
エラーの取得
文字列で表される日時は、カレンダーSystem.Globalization.GregorianCalendarではサポートされていません。説明`