Как получить 3 дня до даты, если получить дату из базы данных? - PullRequest
2 голосов
/ 21 мая 2019

У меня есть Форма, где пользователь заполняет информацию о XYZ, с датой начала и даты истечения. При нажатии на кнопку информация будет сохранена в базе данных. Теперь мне нужно 3 дня до даты истечения срока годности и нужно указать в ярлыке на веб-форме ex. дата истечения срока действия 12.12.2012 г. эта дата сохраняется в базе данных теперь, когда пользователь открывает свой профиль, там должна отображаться дата истечения срока действия 09.12.2012

Я получаю за 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();                
}

Ответы [ 4 ]

2 голосов
/ 21 мая 2019

Если вы храните даты в виде строки, попробуйте использовать метод DateTime.ParseExact. Тогда вы сможете вычесть три дня с даты, полученной из базы данных.

Основываясь на комментариях, еще одно решение, которое может работать, - приведение объекта к дате и времени:

Label1.Text = (Dt.Rows[0]["Enddate"] as DateTime).ToString()
0 голосов
/ 21 мая 2019

Вы можете использовать System.Convert

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

date.AddDays(-3).ToString();
0 голосов
/ 21 мая 2019

Для решения, которое я предлагаю, рассчитать дату окончания срока действия на уровне 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();
    }
0 голосов
/ 21 мая 2019

Я использую этот метод, предложенный сэром 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...