Преобразование MySQL DATETIME в System.DateTime
Я использую базу данных MySQL с DbLinq, но возникает исключение:
"Невозможно преобразовать mysql datetime в system.datetime"
Как я могу решить эту проблему?
4 ответа
Проверка на любую нулевую дату означает дату как "0000-00-00" в базе данных; это может быть причиной ошибки.
value.GetDateTime ()
http://dev.mysql.com/doc/refman/5.0/en/connector-net-ref-types.html
Хорошо, если у вас есть набор результатов, содержащий MySql DateTime
значения, вы можете использовать ConvertAll
метод вместе с делегатом, использующим DateTime.Parse
создать коллекцию System.DateTime
ценности.
Вот пример, где "results" - это результат вашего запроса dblinq, содержащего значения даты и времени MySQL:
List<DateTime> dateTimes = results.ConvertAll(delegate(string time){
return DateTime.Parse(time);
});
Это то, что вы ищете?
Я перемещал столбец в моем сеточном представлении из asp:BoundField в asp:TemplateField, поэтому пришлось явно отображать дату из базы данных MySQL. Через размышление я обнаружил, что в коллекции поля даты указываются как MySqlDateTime, а не system.DateTime.
Я добавил оператор импорта MySql.Data.Types в код и следующий оператор Eval в метке в контексте сетки.
Text = '<% # CType (Eval ("Submitted_Date"), MySql.Data.Types.MySqlDateTime).ToString%>'
Выходной формат: 23.02.2011
Надеюсь, это поможет!