从DataReader访问DateTime字段时的MySqlConversionException

时间:2009-04-02 15:21:50

标签: c# mysql datetime idatareader

我使用MySQL Connector在MySql上有一个C#应用程序;我想做一个 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"]);

有什么建议吗? 提前致谢

4 个答案:

答案 0 :(得分:12)

如果MySQL数据库中的日期时间值为零(00/00/0000 00:00),则有时会发生此错误。尝试将其添加到连接字符串的末尾:

Allow Zero Datetime=true

答案 1 :(得分:2)

在MySQL日期/时间和.NET DateTimes之间进行转换时,有一些潜在的问题,但是有useful section in the MySQL documentation提供了有关如何处理问题的建议。

答案 2 :(得分:0)

我建议它可能是一个特定于文化的错误 - 是与DB在同一台服务器上的应用程序,它们是否具有相同的文化设置?

此外,该列绝对是MySQL中的日期时间吗?

答案 3 :(得分:0)

它也可以是DBNull值。