Преобразование типа данных varchar в тип данных datetime привело к значению вне допустимого диапазона - PullRequest
0 голосов
/ 08 сентября 2011

У меня следующая ошибка SQL Server в ASP.net C #:

Преобразование типа данных varchar в тип данных datetime привело к значению вне диапазона.

Мой SQL-запрос:

string query = @"update Conference set Conference_name='" 
    + name + "',AIMS='" + AIMS + "',Scope='" + scope 
    + "',Submission_Deadline='" + submissionDay 
    + "',Notification_Deadline='" + notificationDay 
    + "',Camera_Ready_submission='" + cameraReadyDay 
    + "',Early_authors_registration='" + earlyAuthorsDay 
    + "',Start_Date='" + startDay + "',End_Date='" + endDay 
    + "',Location='" + location 
    + "' where Conference_ID= '" + id+"'";

Ответы [ 4 ]

1 голос
/ 08 сентября 2011

Я думаю, что ваш запрос в порядке, ваши данные плохие.Одно из полей даты (startDay, EndDay, NotificationDay) не похоже на действительную дату.

1 голос
/ 08 сентября 2011

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

0 голосов
/ 20 декабря 2011

Это связано с поведением c # ToString (). Из-за "культуры" вашего приложения, метод ToString () по умолчанию имеет значение.

"2011 янв. 13" может быть преобразовано в строку "2011-01-13" или "2011-13-01" из-за настроек культуры приложения.

И это может привести к ошибке при попытке найти 13. месяц года.

Чтобы преодолеть эту проблему, я рекомендую использовать SqlCommand и установить параметры ...

см. http://www.knowdotnet.com/articles/dynamicsqlparameters.html

Пример можно легко преобразовать в c #.

0 голосов
/ 08 сентября 2011

одно из ваших значений для даты, вероятно, начальная или конечная дата не может быть преобразовано в дату-время.Поможет увидеть данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...