我用ADO.NET方式连接了mysql数据库,用datagridvie显示表数据,并且增删改数据一切正常。今天发现编辑其中的【日期】列时,出现错误提示:
datagridview中发生以下异常:
system.formatexception:从“system.string”到“mysql.data.types.mysqldatetime”的强制转换无效。--->......
数据表中【日期】是date类型没错,datagridview表格的【日期】列未设置格式。
编辑【日期】列就没法正常退出错误。谁知道啥原因啊?
------解决思路----------------------
你先将数据库中的日期数据取出来看看格式是不是兼容。
2014-03-04
2014.03.04
这种格式可以的,但是如果是2014/03/04貌似是不行的。你将数据转换为。net的日期格式看看报不报错。
如果报错的话可以通过修改sql语句,将日期格式修改为自己想要的样式。
------解决思路----------------------
找出具体报错的位置,看下报错时【日期】的值。
------解决思路----------------------
断点。用typename测试datagridview的单元格类型,和数据表里相应字段的类型
------解决思路----------------------
应该是 DataGridView 没有识别出正确的类型吧。
先查看一下取得的 DataTable,【日期】Column 是什么类型?找个字段值看看又是什么类型?
还有帮助中 mysql.data.types.mysqldatetime,类似 Parse() 或 FromString() 之类的转换函数,默认的日期字符串格式是什么?
------解决思路----------------------
按您的描述我知道您的错误不在DataGridView那里,问题在于MySql语句那里。
您的问题是这样的。 您的数据库表的日期格式是正确,但是向其日期字段添加的对象不是日期格式,
您实际添加的对象是字符串值。 这种状态下字符串值无法直接转换日期格式的。