/// <summary> /// 建立欄位並加入資料表中。 /// </summary> /// <param name="fieldName">欄位名稱。</param> /// <param name="caption">欄位標題。</param> /// <param name="fieldDbType">欄位資料型別。</param> /// <param name="defaultValue">預設值。</param> public DataColumn AddColumn(string fieldName, string caption, EFieldDbType fieldDbType, object defaultValue) { Type oDataType; oDataType = DbTypeConverter.ToType(fieldDbType); return(AddColumn(fieldName, caption, oDataType, defaultValue)); }
/// <summary> /// 建立欄位並加入資料表。 /// </summary> /// <param name="fieldName">欄位名稱。</param> /// <param name="fieldDbType">欄位資料型別。</param> public DataColumn AddColumn(string fieldName, EFieldDbType fieldDbType) { Type oDataType; oDataType = DbTypeConverter.ToType(fieldDbType); object oDefaultValue = DataFunc.GetDefaultValue(oDataType); return(this.AddColumn(fieldName, oDataType, oDefaultValue)); }
/// <summary> /// 依資料型別取得預設值(字串預設為空字串、數值預設為 0,布林值預設為 false,其他為 DBNull.Value)。 /// </summary> /// <param name="dataType">資料型別。</param> /// <param name="dateTimeDefault">DateTime 型別的預設值。</param> public static object GetDefaultValue(Type dataType, EDateTimeDefault dateTimeDefault = EDateTimeDefault.Today) { switch (DbTypeConverter.ToTypeCode(dataType)) { case TypeCode.Boolean: return(false); case TypeCode.Char: case TypeCode.String: return(string.Empty); case TypeCode.SByte: case TypeCode.Byte: case TypeCode.Int16: case TypeCode.UInt16: case TypeCode.Int32: case TypeCode.UInt32: case TypeCode.Int64: case TypeCode.UInt64: case TypeCode.Single: case TypeCode.Double: case TypeCode.Decimal: return(0); case TypeCode.DateTime: switch (dateTimeDefault) { case EDateTimeDefault.Today: return(DateTime.Today); case EDateTimeDefault.Now: return(DateTime.Now); default: // EDateTimeDefault.MinValue: return(DateTime.MinValue); } } return(DBNull.Value); }