我正在使用VS2008数据集连接到数据库。数据库中的一个表包含允许为空的DateTime列(即Type:DateTime?)
MSDN
Datasets
明确声明:
数据集中当前不支持可为空或可为空的结构。
但是在MSDN网站上
TableAdapters
声明TableAdater可以支持可空类型:
TableAdapters支持可为空的类型nullable(Of T)和T?。有关可为空类型的详细信息。。。有关C#中可为空类型的详细信息,请参阅使用可为空类型(C#编程指南)。
我很困惑!
在数据集设计器中,我已将有问题的列的属性设置为“AllowDBNull=True”,但每当我运行返回空DateTime(SELECT*FROM UDF)的TableAdapter查询时,就会出现以下异常:
ArguementOutOfRangeException:Year、Month和Day参数描述不可表示的日期时间
我的一个想法是将列的类型更改为System.Object,以便正确处理空值,然后可以在自己的代码中进行转换,但是,仍然会引发相同的异常。
这个
question
建议在查询返回后如何处理空值,但我无法使查询返回。
如何修改TableAdapter和/或Dataset以允许对可以处理数据库中的空值的表运行查询?