代码之家  ›  专栏  ›  技术社区  ›  Jhonny D. Cano -Leftware-

从DataReader访问日期时间字段时mysqlConversionException

  •  5
  • Jhonny D. Cano -Leftware-  · 技术社区  · 16 年前

    我在MySQL上有一个C应用程序,使用 MySQL Connector 我在努力 DataReader请求,查询执行良好,但是,当尝试访问date time字段时,我得到mysqlConversionException“无法将mysql日期/时间值转换为system.date time”

    这是原型

    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 回复  |  直到 16 年前
        1
  •  11
  •   David M    16 年前

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

    Allow Zero Datetime=true
    
        2
  •  2
  •   LukeH    10 年前

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

        3
  •  0
  •   cjk    16 年前

    我建议这可能是一个特定于区域性的错误-应用程序是否与数据库位于同一服务器上,并且它们是否具有相同的区域性设置?

    另外,该列在MySQL中是否绝对是日期时间?

        4
  •  0
  •   Joel Coehoorn    16 年前

    它也可以是dbnull值。

    推荐文章