Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果从数据库中获取日期,如何在日期前3天获取?_C#_Asp.net_Sql Server_Webforms - Fatal编程技术网

C# 如果从数据库中获取日期,如何在日期前3天获取?

C# 如果从数据库中获取日期,如何在日期前3天获取?,c#,asp.net,sql-server,webforms,C#,Asp.net,Sql Server,Webforms,我有一个表单,用户在其中填写有关XYZ的信息,包括开始日期和到期日期。单击按钮时,信息将保存在数据库中。现在,我需要在到期日期前3天,并需要在web表单ex的标签中显示。到期日期为2012年12月12日。当用户打开其个人资料时,该日期现在保存在数据库中,必须显示到期日期2012年12月9日 我从当前日期中提前3天得到日期,但我不知道如果日期来自数据库,如何得到任何想法 您可以在lbltest中的代码中看到,从当前日期开始,在日期前3天显示 Label1从数据库中获取日期 SqlCommand c

我有一个表单,用户在其中填写有关XYZ的信息,包括开始日期和到期日期。单击按钮时,信息将保存在数据库中。现在,我需要在到期日期前3天,并需要在web表单ex的标签中显示。到期日期为2012年12月12日。当用户打开其个人资料时,该日期现在保存在数据库中,必须显示到期日期2012年12月9日

我从当前日期中提前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();                
}

如果将日期存储为字符串,请尝试使用该方法。然后,您将能够从从数据库检索的日期中扣除这三天

根据注释,另一个可行的解决方案是将对象强制转换为datetime:

Label1.Text = (Dt.Rows[0]["Enddate"] as DateTime).ToString()

我使用的是先生建议的方法,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

您可以使用System.Convert

string dateString = Dt.Rows[0]["Enddate"].ToString();
DateTime date = Convert.ToDateTime(dateString);

date.AddDays(-3).ToString();

使用从数据库读取的DateTime字段,而不是
DateTime。现在
对不起,先生,但是它会弹到我的头上,您能解释一下我是怎么做的吗?在您的例子中,类似于
DateTime.Parse(Dt.Rows[0][“Enddate”].ToString()).AddDays(-3)可以。
lbltest.Text=Dt.Rows[0]。字段(“Enddate”).AddDays(-3)。ToString(“dd/MM/yyyy”)您不需要将DateTime转换为字符串,然后解析日期,然后再转换为字符串。检查要存储到数据库中的内容。如果您已经将存储到中作为日期时间,那么可以直接使用AddDays方法。DateTime now=DateTime.now;字符串asString=now.ToString(“dd-MMMM-yyy-hh:mm:ss-tt”);控制台写入线(关联);Dt.Rows[0][“Enddate”]根据文档返回一个对象:。您需要将此对象强制转换为DateTime,这也可以工作。但如果没有演员阵容,这将不是一个约会时间。很乐意帮忙!如果您没有其他问题,请将其标记为已接受答案。:)我添加了另一个您可以使用的选项。