sommr0 Ответов: 3

Системы.formatexception версия: строка не распознана как действительное значение datetime.


Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения Об Исключении: Система.FormatException: строка не была распознана как допустимая Дата-Время.

Ошибка Источника:
Line 64: {
Line 65: 
Line 66:     int a = Sadapter.Insert(txtSErNo.Text, txtSfname.Text, txtSLname.Text, txtSadd.Text, txtScity.Text,txtSstate.Text, 
Line 67:         txtSpin.Text, Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text),
Line 68:         DrpGender.SelectedItem.ToString(), txtSMoNo.Text, txtSeid.Text, txtSUname.Text, txtSpass.Text);


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

int a = Sadapter.Insert(txtSErNo.Text, txtSfname.Text, txtSLname.Text, txtSadd.Text, txtScity.Text,txtSstate.Text, txtSpin.Text, Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text), DrpGender.SelectedItem.ToString(), txtSMoNo.Text, txtSeid.Text, txtSUname.Text, txtSpass.Text);

Ralf Meier

Так... сделайте действительную дату и время из содержимого 3-х комбо-боксов ...!
Предполагая, что 'DrpDD.Элемент.Текст 'действительно содержит действительный день и' DrpMM. SelectedItem.Текст 'действительно содержит действительный месяц и' DrpYY.SelectedItem.Текст " действительно содержит действительный год - как "11 12 13" (для exmaple) автоматически преобразуется в дату ...?

sommr0

Да это действительно так но проблема

Graeme_Grant

Вы проверили, что это допустимый формат? Преобразовать.Метод ToDateTime (String, IFormatProvider) (System)[^]

Преобразовать.Объект Todatetime(DrpDD.Элемент.Текст + "" + DrpMM.Элемент.Текст + "" + DrpYY.Элемент.Текст)

sommr0

да Ральф Мейер это действительно так

Ralf Meier

Нет... это недопустимо, потому что конвертер не знает вашего формата.
Взгляните на решения и предложение 'метод tryparse" или "метод parseexact' вместо 'конвертировать' ...
Смотрите мое решение ...

sommr0

{ int a = Sadapter.Вставка(txtSErNo.Текст, txtSfname.Текст, txtSLname.Текст, txtSadd. Text, txtScity.Текст, txtSstate.Текст,
txtSpin.Текст, Конвертировать.Объект Todatetime(DrpDD.Элемент.Текст + "" + DrpMM.Элемент.Текст + "" + DrpYY.Элемент.Текст),
Дрпгендер.Элемент.ToString (), txtSMoNo.Text, txtSeid.Text, txtSUname.Текст, txtSpass.Текст);

если (a == 1)
{
Сессия["Петров"] = txtSErNo.Текст;
Ответ.Перенаправление ("AddEducation.aspx");
чистый();

}
это мой код, как его изменить?

3 Ответов

Рейтинг:
26

Atlapure Ambrish

Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text)


используйте DateTime.Метод tryparse instaed из преобразовать способ, чтобы убедиться, строки, выбранные в выпадающих списках делает правильную дату и если не бросить соответствующее сообщение об ошибке для конечного пользователя. Обратитесь к этому для его использования значение datetime.Метод TryParse (String, DateTime) (System)[^]


sommr0

это не рабочий DataTime.Метод TryParse

Atlapure Ambrish

Можете ли вы показать мне код, что именно вы пробовали?

sommr0

{ int a = Sadapter.Вставка(txtSErNo.Текст, txtSfname.Текст, txtSLname.Текст, txtSadd. Text, txtScity.Текст, txtSstate.Текст,
txtSpin.Текст, Конвертировать.Объект Todatetime(DrpDD.Элемент.Текст + "" + DrpMM.Элемент.Текст + "" + DrpYY.Элемент.Текст),
Дрпгендер.Элемент.ToString (), txtSMoNo.Text, txtSeid.Text, txtSUname.Текст, txtSpass.Текст);

если (a == 1)
{
Сессия["Петров"] = txtSErNo.Текст;
Ответ.Перенаправление ("AddEducation.aspx");
чистый();

}

Atlapure Ambrish

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

DateTime dateValue;
значение datetime.Метод tryparse("5/01/2008", из датазнач)

пожалуйста, обратитесь к статье, которую я предоставил в своем решении.

sommr0

это время вставки дата время, когда я изменяю параметр .. он показывает перегруженную ошибку

Atlapure Ambrish

Понял, я думаю, что вы пытаетесь использовать TryParse в методе Insert, вместо этого сделайте это перед insert, а затем используйте переменную dateValue в методе Insert. подобный этому..

DateTime dateValue;
значение datetime.Метод tryparse("5/01/2008", из датазнач)

Садаптер.Вставка(txtSErNo.Текст, txtSfname.Текст, txtSLname.Текст, txtSadd. Text, txtScity.Текст, txtSstate.Текст,
txtSpin.Текст, датазнач,
Дрпгендер.Элемент.ToString (), txtSMoNo.Text, txtSeid.Text, txtSUname.Текст, txtSpass.Текст);

sommr0

это работает большое спасибо

Atlapure Ambrish

Пожалуйста, примите решение :)

Atlapure Ambrish

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

sommr0

можете ли вы связаться со мной по электронной почте??? amjad.somro12@gmail.com

Atlapure Ambrish

вы пробовали это?

DateTime dateValue;
значение datetime.Метод tryparse("5/01/2008", из датазнач)

int a = Sadapter.Вставка(txtSErNo.Текст, txtSfname.Текст, txtSLname.Текст, txtSadd. Text, txtScity.Текст, txtSstate.Текст,
txtSpin.Текст, датазнач,
Дрпгендер.Элемент.ToString (), txtSMoNo.Text, txtSeid.Text, txtSUname.Текст, txtSpass.Текст);

Рейтинг:
1

RickZeeland

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

CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");


Рейтинг:
1

Ralf Meier

Попробуйте вот так :

string myString = DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text ;
DateTime myDate = DateTime.ParseExact(myString, "dd MM yy",null) ;


int a = Sadapter.Insert(txtSErNo.Text, txtSfname.Text, txtSLname.Text, txtSadd.Text, txtScity.Text,txtSstate.Text, 
 txtSpin.Text, myDate, DrpGender.SelectedItem.ToString(), txtSMoNo.Text, txtSeid.Text, txtSUname.Text, txtSpass.Text);


sommr0

когда я его изменю . он показывает перегруженную ошибку

sommr0

та же ошибка

Ralf Meier

Когда вы отлаживаете его - как выглядит содержимое myString ?
Если вы хотите получить решение, вы должны попытаться работать с нами вместе. Помните: мы не сидим рядом с вами - мы не видим того, что видите вы.