0

Oracle データベースから複数の日付を読み取り、それを に割り当てるアプリケーションを使用していますDateTimePickers

dtpAdjSerDt.Value = dr.GetDateTime(iadj_service_date);

ただし、この割り当てには、db の値が になる可能性があるため、null チェックが必要nullです。

値が null の場合にデフォルト値を返す拡張メソッドを作成できるようにしたいと考えています。

public static DateTime fSafeGetDateTime(OracleDataReader reader, int colIndex)
{
    if (!reader.IsDBNull(colIndex))
        return reader.GetDateTime(colIndex);
    else
        return DateTime.Now;
}

このアプローチには 1 つの問題があります。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;
    }
}

これが不可能な場合、これを達成するための最もクリーンな方法 (コードの重複を避ける) は何でしょうか?

4

1 に答える 1