MySqlConversionException при доступе к полю DateTime из DataReader

У меня есть приложение C # поверх MySql, использующее MySQL Connector; Я пытаюсь сделать запрос DataReader, запрос выполняется нормально, однако при попытке доступа к полю DateTime я получаю MySqlConversionException {"Невозможно преобразовать значение даты / времени MySQL в System.DateTime"}

это прототип

if (dr != null && !dr.Read()) return;

sesion.Id = Convert.ToInt32(dr["id"]);
sesion.Usuario = Convert.ToInt32(dr["usuario"]);
sesion.Estado = Convert.ToByte(dr["estado"]);
// doesn't work
sesion.FchCreacion = Convert.ToDateTime(dr["fch_creacion"]);

Какие-либо предложения? заранее спасибо


person Jhonny D. Cano -Leftware-    schedule 02.04.2009    source источник


Ответы (4)


Эта ошибка иногда возникает, если у вас есть нулевые значения даты и времени в вашей базе данных MySQL (00/00/0000 00:00). Попробуйте добавить это в конец строки подключения:

Allow Zero Datetime=true
person David M    schedule 02.04.2009

При преобразовании даты / времени MySQL и .NET DateTimes существует несколько потенциальных ошибок, но есть полезный раздел в документации MySQL с советами по решению проблем.

person LukeH    schedule 02.04.2009
comment
@ jkw4703: Я исправил ссылку. - person LukeH; 11.03.2015

Я бы предположил, что это может быть ошибка конкретной культуры - приложение находится на том же сервере, что и БД, и имеют ли они те же настройки культуры?

Кроме того, столбец определенно является датой и временем в MySQL?

person cjk    schedule 02.04.2009

Это также может быть значение DBNull.

person Joel Coehoorn    schedule 02.04.2009