ADI@345 Ответов: 1

У меня возникает проблема при сравнении даты .


мой код отлично работает, когда я запускаю его на локальном хосте, но когда я загружаю его на сервер, он выдает ошибку..
String was not recognized as a valid DateTime.


Что я уже пробовал:

{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

    string userid = GVmydsr.DataKeys[e.RowIndex].Value.ToString();
    GridViewRow row = (GridViewRow)GVmydsr.Rows[e.RowIndex];
    Label date = (Label)row.FindControl("lblcurrentdate");

    string cdate = date.Text.ToString();
    DateTime date1 = DateTime.ParseExact(cdate, "MM/dd/yyyy 00:00:00", null);
    string dt1 = date1.ToString("MM/dd/yyyy 00:00:00");


    GVmydsr.EditIndex = -1;


    string dt2 = DateTime.Today.ToString("MM/dd/yyyy 00:00:00");

    if (dt1 == dt2)
    {
        //
    }

    else
    {
        ScriptManager.RegisterStartupScript(this, GetType(), "Success", "alert('Cannot Edit !!!.');", true);
        gvbind();
    }
}

ADI@345

Я получаю дату в этом формате оффлайн - 01-04-2018 00:00:00
но после загрузки его, получить конвертировать в - 01/04/2018 00:00:00

Richard MacCutchan

Почему вы используете строки для сравнения дат? Используйте типы DateTime для точного сравнения.

1 Ответов

Рейтинг:
2

Karthik_Mahalingam

использовать значение datetime.Метод TryParseExact (Система)[^]

Label date = (Label)row.FindControl("lblcurrentdate");
           string cdate = date.Text;
           DateTime date1 = DateTime.MinValue;
           DateTime.TryParseExact(cdate.Split(' ')[0], "MM-dd-yyyy", null, System.Globalization.DateTimeStyles.None, out date1);
           string dateDB = date1.ToString("MM-dd-yyyy");
           string day = DateTime.Today.ToString("MM-dd-yyyy");
           if (dateDB == day)
           {
               ////
           }


Цитата:
Я получаю дату в этом формате оффлайн - 01-04-2018 00:00:00
но после загрузки его, получить конвертировать в - 01/04/2018 00:00:00

если ваша строка похожа на "01-04-2018" тогда использовать "MM-dd-yyyy"
если "01/04/2018" тогда использовать "MM/dd/yyyy"
это позволит справиться с обоими делами
DateTime.TryParseExact(cdate.Split(' ')[0], new string[] { "MM-dd-yyyy", "MM/dd/yyyy" }, null, System.Globalization.DateTimeStyles.None, out date1);


ADI@345

я применяю все это , но это прекрасно работает на локальном хосте , но не на сервере

ADI@345

SqlConnection con = новый SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].Параметр connectionString);

строка имя пользователя = GVmydsr.DataKeys[электронный.Параметр rowindex].Значение.Метод toString();
GridViewRow row = (GridViewRow)GVmydsr.Rows[e.Параметр rowindex];
Дата метки = строка (метка).FindControl("lblcurrentdate");

строка cdate = date.Text.Метод toString();
Дата1 датавремя = Датавремя.Параметр minvalue;
значение datetime.TryParseExact(cdate.Split(' ')[0], new string[] { "MM-dd-yyyy", "d/M/yyyy" }, null, System.Глобализация.DateTimeStyles.Нет, дата выхода 1);

строка dt1 = date1.ToString("d/M/yyyy 00:00:00");

GVmydsr.EditIndex = -1;


строка dt2 = DateTime.Сегодня.ToString("d/M/yyyy 00:00:00");

если (dt1 == dt2)
{

Элемента управления scriptmanager.RegisterStartupScript(this, GetType(), "Success", "alert('Update Successfully!!!.');", true);
gvbind();
}

еще
{
Элемента управления scriptmanager.RegisterStartupScript(this, GetType(), "Success", "alert('Cannot Edit !!!.');", true);
gvbind();
}
}

ADI@345

я внес изменения , этот код работает для меня онлайн..

ADI@345

Спасибо за помощь

Karthik_Mahalingam

добро пожаловать