mysql日期默认值'0000-00-00'惹的祸
.net连mysql数据库时,如果表里有字段是日期型且值是‘0000-00-00’时,会报错。在C#里面日期不可能是那样的。或许是最小日期定义的差别。
解决办法:
<connectionStrings>
<add name="POS_Entities" connectionString="metadata=res://*/POS_DB.csdl|res://*/POS_DB.ssdl|res://*/POS_DB.msl;
provider=MySql.Data.MySqlClient;provider connection string="server=www.footbath.software;user id=root;password=??????;
persistsecurityinfo=True;database=market;allowzerodatetime=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
修改连接字符串加上选项:
allowzerodatetime=True
这种方式虽然不报错了,但是获取到的记录集会多出来。比如本来只返回一个table,一下返回了3个(多出2个中间表,不知道干嘛的)
convertzerodatetime=True
这是把‘0000-00-00’转成‘0001-01-01’,还以为该是'1901-01-01'呢!