データベースから取得したデータを処理する関数を集めたクラス
いろんな便利関数を集めたクラスを XXXHelper という名前で作っていこうと思う。
using System; namespace SabineLib { /// <summary> /// データベースから取得したデータを処理する関数を集めたクラス /// </summary> public class DbObjectHelper { /// <summary> /// obj が null か DBNull なら true /// </summary> public static bool IsNullOrDBNull(object obj) { if (obj == null || obj == DBNull.Value) { return true; } return false; } /// <summary> /// obj1 が null か DBNull なら obj2、そうでないなら obj1 を返す。 /// SQLのCOALESCE関数に相当。 /// </summary> public static object Coalesce(object obj1, object obj2) { return IsNullOrDBNull(obj1) ? obj2 : obj1; } /// <summary> /// obj1 が null か DBNull なら obj3、そうでないなら obj2 を返す。 /// PL/SQLのNVL2関数に相当。 /// </summary> public static object Coalesce2(object obj1, object obj2, object obj3) { return IsNullOrDBNull(obj1) ? obj3 : obj2; } /// <summary> /// obj1 と obj2 が等しいなら null、異なるなら obj1 を返す。 /// SQLのNULLIF関数に相当。 /// </summary> public static object NullIf(object obj1, object obj2) { if (obj1.Equals(obj2)) { return null; } return obj1; } } }