我正在使用从 Oracle 数据库中读取多个日期并将其分配给DateTimePickers
.
dtpAdjSerDt.Value = dr.GetDateTime(iadj_service_date);
但是,此分配需要进行空检查,因为 db 中的值可能是null
.
如果值为空,我希望能够创建一个返回默认值的扩展方法。
public static DateTime fSafeGetDateTime(OracleDataReader reader, int colIndex)
{
if (!reader.IsDBNull(colIndex))
return reader.GetDateTime(colIndex);
else
return DateTime.Now;
}
这种方法存在一个问题:如果 db 值为 null,则 DateTimePicker.Checked 应该为 false。但是使用我上面建议的策略,它将被设置为 true。
有没有办法让我做这样的事情:
public static DateTime fSafeGetDateTime(OracleDataReader reader, int colIndex, DateTimePicker control)
{
if (!reader.IsDBNull(colIndex))
return reader.GetDateTime(colIndex);
else
{
control.Checked = false;
return DateTime.Now;
}
}
如果这是不可能的,那么最干净的方法(避免重复代码)是什么?