Noman Suleman Ответов: 2

Я столкнулся с проблемой строка не была распознана как действительная дата время при преобразовании в дату время


привет,
я работаю над веб-приложением, я сталкиваюсь с проблемой в веб-форме, когда нажимаю на кнопку ссылки, она выдает ошибку "строка не была распознана как действительная дата времени при преобразовании в дату времени", хотя это на локальной машине работает нормально, но после развертывания на сервере она показывает выше ошибку.

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

protected void lnkbtnAddExisting_Click(object sender, EventArgs e)
       {
           DevExpress.Web.GridViewDataItemTemplateContainer gvRow = ((DevExpress.Web.GridViewDataItemTemplateContainer)((LinkButton)sender).NamingContainer);
           string SchemeNameID = DataBinder.Eval(gvRow.DataItem, "SchemeNameID").ToString();
           DateTime StartDate =Convert.ToDateTime( DataBinder.Eval(gvRow.DataItem, "StartDate"));
           DateTime EndDate =Convert.ToDateTime( DataBinder.Eval(gvRow.DataItem, "EndDate"));


           Response.Redirect("abc.aspx?StartDate=" + StartDate + "&EndDate=" + EndDate + "&SchemeNameID=" + SchemeNameID);
       }

2 Ответов

Рейтинг:
2

Patrice T

Создайте временные переменные, чтобы увидеть, что вы хотите преобразовать с помощью отладчика:

string Temp = DataBinder.Eval(gvRow.DataItem, "EndDate");


Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.

[Обновление]
Вы уверены, что вам нужно конвертировать в DateTime в C# ?
Потому что у вас есть строка, преобразованная в DateTime, чтобы построить строку.


Noman Suleman

он отлично работает на моем локальном отладчике и показывает дату в формате "dd/mm/yyyy" ss:mm на сервере он показывает ошибку

Рейтинг:
15

OriginalGriff

Так что проверьте свою БД: сообщение об ошибке довольно явное.

string was not recognized as a valid date time when converting to date time

Это означает, что значение, полученное из вашей базы данных, не является допустимой датой и временем в текущей локали для рабочей машины.

Решение этой проблемы состоит в том, чтобы изменить вашу БД таким образом, чтобы вы хранили значения в соответствующих типах данных: даты в DATE или DATETIME, целые числа в INT и так далее. Когда вы храните даты в виде строк, это только начало проблем, которые он вам даст.


Noman Suleman

сэр, я проверил БД, хотя все настроено так, как вы предлагаете, но все еще есть та же проблема..