我已经在这里通过了各种答案,但没有一个给出真正有效的答案。核心问题(显然)是 DateTime 没有任何 NULL 的概念,所以通常
string dateValue = myReader.IsDBNull (4) ? null : myReader.GetDateTime(4) ;
不起作用。
我试过了
DateTime? nextDue = myReader.GetDateTime(3) == DBNull.Value ? null : (DateTime?)myReader.GetDateTime (3) ;
但这给了
Operator '==' cannot be applied to operands of type 'System.DateTime' and 'System.DBNull'
更改为
DateTime? nextDue = myReader.GetDateTime(3) = DBNull.Value ? null : (DateTime?)myReader.GetDateTime (3) ;
生产
Cannot implicitly convert type 'System.DBNull' to 'bool'
我最终将 SQL 更改为不输出 NULL 值,但我仍然想破解这个,因为它将在其他地方有用