2009-10-22 1 views
2

Я использую базу данных MySQL с DbLinq, но есть исключение бросают:Преобразование MySQL DATETIME в System.DateTime

"Не удается преобразовать MySQL DateTime в System.DateTime"

Как я могу решить эту проблему?

+0

Как вы теперь его кастинг/преобразование? – Ariel

+0

Является ли дата MySql временной отметкой unix? –

ответ

1

Ну, если у вас есть результирующий набор, содержащий DateTime значения MySql, вы можете использовать метод ConvertAll вместе с делегатом, используя DateTime.Parse создать коллекцию System.DateTime значений.

Вот пример, где «результаты» является результатом вашего запроса, содержащего dblinq значений даты и времени MySQL:

List<DateTime> dateTimes = results.ConvertAll(delegate(string time){ 
    return DateTime.Parse(time); 
}); 

Это то, что вы ищете?

1

Я двигался колонка в моей GridView из осины: BoundField к Asp: TemplateField так должны были отобразить дату из базы данных MySQL в явном виде. Я нашел через отражение, что коллекция набрала поля даты как MySqlDateTime, а не system.DateTime.

Я добавил операцию импорта MySql.Data.Types в код позади и следующий оператор Eval в метке в контексте gridview.

Текст = '<% # CType (Eval ("Submitted_Date"), MySql.Data.Types.MySqlDateTime) .ToString%>' формат

выход: 02/23/2011

надежда, что помогает!

5

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