Member 10386021 Ответов: 2

Строка Не Распознана Как Действительное Значение Datetime / Неизвестное Слово, Начиная С Индекса 0?


SqlConnection conn = новый SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].Параметр connectionString);
Коннектикут.Открыть();
строка date = Convert.Метод toString(ddlYear.Элемент.Значение) + "/" + Преобразование.Метод toString(ddlMonth.Элемент.Значение) + "/" + Преобразование.Метод toString(ddlDate.Элемент.Ценность);
DateTime dt = конвертировать.ToDateTime(дата);
// ddlYear.SelectedValue + "/" + ddlMonth.SelectedValue + "/" + ddlDate.SelectedValue
SqlCommand cmd = new SqlCommand(@"insert into OnlineBookingEvent(BookingEvent,BookeventDate,cdt,udt)значения
(@BookingEvent,@BookeventDate,@cdt,@udt)", conn);
cmd.параметры.AddWithValue("@BookingEvent", ddlEventName.DataValueField);
cmd.параметры.AddWithValue("@BookeventDate",dt);
cmd.параметры.AddWithValue ("@cdt", System.Датавремя.Сейчас);
cmd.параметры.AddWithValue("@udt", System.Датавремя.Сейчас);
УМК.Метод executenonquery();

2 Ответов

Рейтинг:
2

Marla Sukesh

Преобразовать.Объект todatetime считает свой формат системной даты и времени.

Например, допустим, что ваш машинный формат даты и времени - "dd/MM/yyy", а ваша строка содержит дату и время в "yyyy/MM/dd", вы получите вышеописанную ошибку.


Либо измените формат системного времени даты.
Или измените формат приложения DateFormat, используя следующий код, а затем выполните приведенный выше код

CultureInfo current = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;
DateTimeFormatInfo ObjPriDateTimeFormat = DateTimeFormatInfo.CurrentInfo.Clone() as DateTimeFormatInfo;
ObjPriDateTimeFormat.ShortDatePattern="yyyy/MM/dd";
current.DateTimeFormat = ObjPriDateTimeFormat;
Thread.CurrentThread.CurrentCulture = current;


Рейтинг:
0

OriginalGriff

Если у вас есть значение для каждого из ваших выпадающих списков, которое является числовым, почему вы строите его в DateTime таким окольным методом? Зачем вообще делать преобразования, зависящие от текущих системных настроек (на которые вы не ссылаетесь и не проверяете), создавая строку?

Вместо этого попробуйте:

DateTime dt = new DateTime((int) ddlYear.SelectedItem.Value, (int) ddlMonth.SelectedItem.Value, (int) ddlDate.SelectedItem.Value);


Таким образом, нет ни строк, ни интерпретации - только ясность (и более читаемый код для загрузки)?


Matt T Heffron

+5