我有一个表格,用户可以在其中填写有关XYZ的信息,包括开始日期和到期日期。单击该按钮时,该信息将保存在数据库中。现在我需要从到期日起3天之前,并且需要在网络表单ex的标签中显示。到期日期是2012年12月12日,此日期现在保存在数据库中,当用户打开其个人资料时,该日期必须显示到期日期2012年12月12日
我比当前日期早3天,但不知道该日期是否来自数据库,怎么知道?
您可以在lbltest的代码中看到我显示的是当前日期之前的3天 和Label1从数据库获取日期
SqlCommand cmd = new SqlCommand("Select Enddate from moudetails", con);
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DataTable Dt = new DataTable();
DA.Fill(Dt);
if (Dt.Rows.Count > 0)
{
lbltest.Text = DateTime.Now.AddDays(-3).ToString("dd/MM/yyyy");
Label1.Text = Dt.Rows[0]["Enddate"].ToString();
}
答案 0 :(得分:2)
如果将日期存储为字符串,请尝试使用DateTime.ParseExact
方法。然后,您将可以从数据库中检索到的日期中扣除三天。
基于注释,另一个可行的解决方案是将对象强制转换为日期时间:
Label1.Text = (Dt.Rows[0]["Enddate"] as DateTime).ToString()
答案 1 :(得分:0)
我使用ISPain17先生建议的这种方法
SqlCommand cmd = new SqlCommand("Select Enddate from moudetails", con);
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DataTable Dt = new DataTable();
DA.Fill(Dt);
if (Dt.Rows.Count > 0)
{
string dateString = Dt.Rows[0]["Enddate"].ToString();
//lbltest.Text = DateTime.Now.AddDays(-3).ToString("dd/MM/yyyy");
//Label1.Text = Dt.Rows[0]["Enddate"].ToString();
Label1.Text = DateTime.Parse(dateString).AddDays(-3).ToString();
}
及其工作:D
答案 2 :(得分:0)
对于该解决方案,我建议在SQL查询级别计算失效日期,然后提取查询结果并按原样显示。
SqlCommand cmd = new SqlCommand("Select Enddate, DATEADD(day,-3,Enddate) as expiryDate from moudetails", con);
SqlDataAdapter DA = new SqlDataAdapter(cmd);
DataTable Dt = new DataTable();
DA.Fill(Dt);
if (Dt.Rows.Count > 0)
{
lbltest.Text = Dt.Rows[0]["expiryDate"].ToString();
Label1.Text = Dt.Rows[0]["Enddate"].ToString();
}
答案 3 :(得分:0)
您可以使用System.Convert
private void onAddClick(){
String title = mTitleEdit.getText().toString();
String body = mBodyEdit.getText().toString();
Note note = new Note();
note.setTitle(title);
note.setBody(body);
noteDao.insertNote(note);
notes = noteDao.getNotes();
adapter = new RecyclerViewAdapter(notes, getApplicationContext());
mNotesRecycler.setAdapter(adapter);
}