1、数据库是SQLServer 2005 ,开发环境是VS2010,使用Newtonsoft.Json对DataTable进行JSON转换的时候,一切正常;
2、数据库切换到MySQL,查询的是相同的表结构数据,JSON后格式变成如下:
[{ "FDate" :{ "IsValidDateTime" : TRUE,
"Year" : 2014,
"Month" : 3,
"Day" : 12,
"Hour" : 16,
"Minute" : 34,
"Second" : 25,
"Millisecond" : 0,
"IsNull" : FALSE,
"Value" : "2014-03-12T16:34:25" },
"FBillNo" : "B201403130001", 以下字段省略...}]
正常格式:
[{ "FDate" : "2014-03-06T00:00:00",
"FBillNo" : "B201403130001",以下字段省略...}]
使用System.Runtime.Serialization.Json.DataContractJsonSerializer这个可以正常的转换...
装载数据库数据的对象格式发生变化了吧 跟 Newtonsoft.Json 没关系
在 MYSQL中,我把FDate字段分别设置为date、time、DateTime以及timestamp,查询出来全部变成这样的格式;设置为varchar是正常的。
我想知道,是不是因为MySQL的字符编码问题呢?
@Jesenl: 你看看MYSQL的连接字符串是不是有
Allow Zero Datetime=true
@Yu: 是啊 有这个啊
@Yu: 嘿 哥们 你真有才,明白什么意思了,已解决。
我的MySQL数据库是从SqlServer2005导过来的,里面有些日期字段可以设置为null,在MySQL数据库中,字段为空的值变为不为空且用“0000-00-00 00:00:”填充,我开始解决的办法是在连接字符串增加Allow Zero Datetime=true ,结果就导致出现上述问题;现在把Allow Zero Datetime=true 从连接字符串中删掉,重新修改MySQL数据库的表机构,并把值为“0000-00-00 00:00:”修改为null 解决。
你取出来的数据是放dataset里面还是别的
在dataset中,断点dataset相同;