GBASE南大通用解决无效日期的方法有如下三种:限制无效日期、处理无效日期和处理 NULL日期。
5.6.2.1 限制无效日期
日期问题的最好解决办法是限制用户输入无效日期,GBASE南大通用该方法可以在客户端或服务器端任何一方实现。
1) 客户端实现:
.NET Framework 为应用程序提供了日期控件,当应用程序需要输入日期时使用日期控件完成输入。
2) 服务器端实现:
日期数据进入数据库时都可通过存储过程完成,GBASE南大通用无效日期的限制在存储过程中完成。
5.6.2.2 处理无效日期
GBaseDateTime 数据类型支持 GBase 数据库支持的相同日期值,缺省情况下GBaseDataReader.GetValue()方法会为有效日期值返回一个.NET DateTime 对象,并且会为无效日期返回一个错误。可以更改这个缺省方式,让
GBaseDataReader.GetValue() 对于无效日期也返回一个 GBaseDateTime 对象。
要想使 GBase ADO.NET 为无效日期也返回一个 GBaseDateTime 对象,需要在连接字符串中增加下面的键/值对:
Allow Zero Datetime=True
注意:使用 GBaseDateTime 类仍然可能产生问题,GBASE南大通用下面有一些结论:
无效日期的数据绑定仍然可能产生错误(0000-00-00 零日期不会产生错误),如:2012-13-35;
ToString 方法返回按标准 GBase 数据库格式处理的日期(例如,2005-02-23 08:50:25),这与.NET DateTime 类的 ToString 不同;
GBaseDateTime 类支持 NULL 日期,但是.NET DateTime 类不支持。如事先不检查 NULL 就把一个 GBaseDateTime 转换为一个 DateTime 时,会产生错误。




