我浏览了关于这个的各种信息,经过一个小时的搜索,我找不到任何关于它的信息,所以我不得不特别问一些问题。
在我的MySQL数据库中,我有一系列具有Created_dt列的表,这是一个DateTime(6)字段。数据的一个例子是:2015-06-19 11:52:07.000000
由于某种原因,我可以从数据库中的任何表中提取任何列,除了这一列。每当我创建一个连接字符串,并用适配器填充一个数据表时,我都会在标题中得到错误。代码:
MySqlCommand cmd = new MySqlCommand("Select Created_dt from comptran_bulk", connection);
MySqlDataAdapter da = new MySqlDataAdapter(cmd as MySqlCommand);
DataTable dt = new DataTable();
da.Fill(dt); // This is where the exception is thrown, when data is loaded into the table.
这个命令最终将被"Select * from view_Sales"
取代,所以我认为用不同的方法来转换它是行不通的。此外,Created_dt
的值都不是Null,因此允许零DateTime=True
也不起作用。
你有什么建议吗?
答案就在2012年的一张旧的错误通知单里。
"[1 Jun 2012 13:39] Dan Berger这似乎没有在6.4.5中修复-我仍然得到FormatException.
如果有帮助的话,我可以进一步缩小问题范围:
MySqlDateTime Success = new MySqlDateTime("2012-01-01 12:00:00");
MySqlDateTime Failure = new MySqlDateTime("2012-01-01 12:00:00.123456");//抛出FormatException
我的服务器是"MySQL 5.1.41-3ubuntu12.10",如果有区别的话。"
在c# . net中使用时,微秒是导致错误的原因。在将内容修改为datetime(0)而不是datetime(6)之后,事情开始工作了。