prodipjsr Ответов: 4

Не удалось преобразовать значение параметра из строки в дату и время


На странице я пишу код:(для вставки данных в базу данных)
string Openingdate = tbopendate.Text;
myCommand.Parameters.Add("@Openingdate", System.Data.SqlDbType.DateTime).Value = Openingdate;


Этот код работает нормально, ошибки нет.

Но тот же самый код я пишу на другой странице & код есть ((для вставки данных в базу данных).
string Joindate = tbJoindate.Text;
myCommand.Parameters.Add("@Joindate", System.Data.SqlDbType.DateTime).Value = Joindate;


Этот код показывает ошибку::Failed to convert parameter value from a String to a DateTime.

Почему и в чем проблема???

PrashantSonewane

ты можешь попробовать
DateTime dt = DateDateTime.Синтаксический анализ(tbJoindate.Текст);

моя команда.Parameters.Add ("@Joindate", System.Data.SqlDbType.DateTime).Значение = dt;

prodipjsr

Я hv пытаюсь, но система показывает ошибку::String не была распознана как допустимая Дата-Время.

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Какой формат и значение вы получаете в этом случае tbJoindate.Text ?
Пожалуйста, приведите какой-нибудь пример.

prodipjsr

формат даты: 'ММ-ДД-гг',

4 Ответов

Рейтинг:
2

Anuja Pawar Indore

Я не знаю, как вы не получаете ошибку в первом. У обоих есть тип datetime в базе данных? Если да, то первый тоже не должен работать.
Вы должны преобразовать текст в datetime
Попробовать это
[Редактировать]

DateTime date = DateTime.ParseExact(tbJoindate.Text.ToString(),
                         "yyyy-MM-dd HH:mm:ss.fff",
                         CultureInfo.InvariantCulture);

cmd.Parameters.Add("@Joindate", SqlDbType.DateTime).Value = date;


prodipjsr

да, первый работает нормально..И оба типа данных-это один и тот же DateTime...

prodipjsr

можете ли вы дать мне решение, Пожалуйста..

Anuja Pawar Indore

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

prodipjsr

не работать

Рейтинг:
0

_Amy

Попробуйте разобрать дату. Давайте проверим, является ли данная дата соединения tbJoining a ДАТА или нет. Попробовать это:

DateTime dt;
DateTime.TryParse(tbJoindate.Text.Trim(), out dt);
myCommand.Parameters.Add("@Joindate", System.Data.SqlDbType.DateTime).Value = dt;



--Амит


Рейтинг:
0

TrushnaK

DateTime date=Format(CDate(tbJoindate.Text),"yyyy-MM-dd")
mycommand.parameters.Add("@Joindate",date);

или
DateTime date=DateSerial(Mid(tbJoindate.Text, 7, 4), Mid(tbJoindate.Text, 4, 2), Mid(tbJoindate.Text, 1, 2))
mycommand.parameters.Add("@Joindate",date);


Рейтинг:
0

Zafar Sultan

As we don't have the sample dates you are using, I am assuming that the first portion of you code is working because the date you are passing is correct(unintentionally). For example, passing "10/10/2013" is a valid date both in "dd/MM/yyyy" format as well as "MM/dd/yyyy" format. The second part is not executing because passing "15/12/2013" is correct in "dd/MM/yyyy" format but it is incorrect in "MM/dd/yyyy" format. And maybe the culture of your application is "en-US". So there is an error in the dates you are passing. If the textboxes you are using takes dates in "MM/dd/yyyy" format, your code should work fine. But, if your textboxes are taking dates in "dd/MM/yyyy" format, you can convert it in "MM/dd/yyyy" format by using the below code:

string InputDate = YourDateTextBoxId.Text.Trim();
System.Globalization.DateTimeFormatInfo dateInfo = new System.Globalization.DateTimeFormatInfo();
dateInfo.ShortDatePattern = "dd/MM/yyyy";
DateTime OutputDate = Convert.ToDateTime(InputDate, dateInfo); 


OutputDate будет действительной датой. Попробуйте и скажите нам, если это сработает.


prodipjsr

мой формат даты: "ММ-ДД-гг", я поставил формат даты из календаря..

Zafar Sultan

Вы можете изменить формат даты вашего элемента управления календарем На "ММ/ДД/гггг" или он должен быть "ММ-ДД-гг"? Если вы не можете изменить, вы можете использовать: DateTime date = DateTime.Метод Parseexact(YourDateTextBoxId.Текст.Отделка(), "ММ-ДД-гг", система.Глобализация.CultureInfo.Языка и региона существует);

helpr_b

Дата-время дата = дата-время.Метод Parseexact(YourDateTextBoxId.Текст.Отделка(), "ММ-ДД-гг", система.Глобализация.CultureInfo.Языка и региона существует);

helpr_b

строка.Формат ("{0}", Конвертировать.Объект todatetime(про.ValueParameter.Метод toString()).Дата.ToString("ММ/ДД/гггг"));