不要在XSD生成的DataTable类上的Null Dates上抛出异常

时间:2013-11-22 16:31:54

标签: vb.net datatable xsd visual-studio-designer

在Visual Studio中的.xsd设计器中设计数据表时,有一个属性指定当表遇到空值时要执行的操作:

screenshot

问题是,如果DataTypeSystem.DateTime,我将无法返回emptynothing。它总是抛出异常。

当我解决问题时,我可以执行以下操作:

If(row.IsDateLastRecallPrintedNull, DateTime.MinValue, row.DateLastRecallPrinted)

但如果值为DbNull.Value,我宁愿让它返回。

1 个答案:

答案 0 :(得分:3)

使用IsDateLastRecallPrintedNull不是一种解决方法,它的使用方式就是这样。如果您使用可以为空的日期,则可以在代码中将其设置为空而不是DateTime.MinValue。或者,您可以将数据集中的数据类型更改为System.Object,然后您可以在下拉列表中选择“(Nothing)”。请注意,您可以使用适合数据类型的其他值来改写属性中的NullValue条目,但是如果您输入DateTime.Minvalue它将无效 - 它似乎接受它,但随后失败 - 但您可以放置在另一个神奇的数字,如01/01/1900。

这一切都是'按设计'。*

使用数据绑定可以在很大程度上避开这个泥潭;如果你是从数据集中以编程方式阅读,那么IsxxxNull就是你的选择。

*我怀疑这通常是微软主义的'我们没有按发货日期完成'