Muhammd Aamir Ответов: 2

Ошибка: строка не была распознана как допустимая дата-время


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

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

public int Validate_DOB()
   {
       DateTime dt = DateTime.Parse(txt_DOB.Text);//error occured at this line of code
       int Validate = DateTime.Now.Year - dt.Year;
       return Validate;
   }

2 Ответов

Рейтинг:
4

Mehedi Shams

Привет Амир,

Ошибка ясна из сообщения об ошибке msg - значение в текстовом поле не является датой и временем. Вы можете использовать TryParse() как и предполагал Питер. Или вы можете поймать FormatException чтобы пользователь знал о проблеме во время выполнения.

try
{
    DateTime dt = DateTime.Parse(txt_DOB.Text);//error occured at this line of code
    int Validate = DateTime.Now.Year - dt.Year;
}
catch (FormatException)
{
    MessageBox.Show("This is not a valid date time.");
}


Muhammd Aamir

Спасибо Мехеди Шамсу за то, что поделился своими знаниями ... я сделал это с помощью расширителя календаря, теперь нет ошибки строкового формата...

Muhammd Aamir

Привет Мехеди Шамс мой тип возврата функции integer как я могу показать предупреждающее сообщение...

public int Validate_DOB () / / ошибка здесь не все пути кода возвращают значение
{
пробовать
{
ДТ датавремя = Датавремя.Синтаксический анализ(txt_DOB.Текст);
интервал проверки = Датавремя.Сейчас.Год - ДТ. год;
вернуться проверить;
}
catch (FormatException ex)
{
Ответ.Write ("alert ('"+Server.HtmlEncode (ex.Метод toString()) + "')");
}

}

Mehedi Shams

Привет Амир,

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

ClientScript.RegisterStartupScript (это.Метод gettype(), "приложение оповещения", "Alert('это не является допустимым дата время.');", правда);

Рейтинг:
15

Peter Leow

Вы должны использовать значение datetime.Метод tryparse[^]
Кроме того, рассмотрите возможность использования datatimepicker, чтобы позволить пользователям выбирать дату, а не текстовое поле, допускающее текст в свободной форме. Проверить это: Реализуйте DateTimePicker в ASP.Сеть с помощью плагина jQuery[^]


Muhammd Aamir

Спасибо Питеру Леоу... [^] этот знак указывает, к какому типу относится параметр

Peter Leow

Это ссылка для открытия страницы на новой вкладке.

Muhammd Aamir

О Великий Петр Leow вы решить мою проблему, я использую календарь расширитель в текстовое поле и пользователь может выбрать из календаря расширитель и выберите в правильном формате спасибо большое хорошая работа сделана вами