/// <summary> /// 取得欄位預設值(字串預設為空字串、數值預設為 0,布林值預設為 false,其他為 DBNull.Value)。 /// </summary> /// <param name="fieldDefine">欄位定義。</param> public static object GetDefaultValue(GFieldDefine fieldDefine) { if (fieldDefine.AllowNull) return DBNull.Value; else return DataFunc.GetDefaultValue(fieldDefine.DbType); }
/// <summary> /// 匯入欄位 /// </summary> /// <param name="originalRow">來源資料列</param> private void ImportFieldNames(GEntityRow originalRow) { foreach (GEntityField field in originalRow.Fields) { this.Fields.Add(field.Key, DataFunc.GetDefaultValue(field.Value.GetType())); } }
/// <summary> /// 設定資料表中每個欄位的預設值。 /// </summary> /// <param name="tableDefine">資料表定義。</param> /// <param name="dataTable">資料表。</param> public static void SetDataColumnDefaultValue(GTableDefine tableDefine, DataTable dataTable) { foreach (DataColumn oColumn in dataTable.Columns) { var oFieldDefine = tableDefine.Fields[oColumn.ColumnName]; if (BaseFunc.IsNotNull(oFieldDefine) && !oFieldDefine.AllowNull) { oColumn.DefaultValue = DataFunc.GetDefaultValue(oFieldDefine.DbType); } } }
/// <summary> /// 依實體欄位定義新增命令參數。 /// </summary> /// <param name="dbFieldDefine">實體欄位定義。</param> public virtual DbParameter AddParameter(GDbFieldDefine dbFieldDefine) { DbParameter oParameter; oParameter = AddParameter(dbFieldDefine.FieldName, dbFieldDefine.DbType); oParameter.SourceColumn = dbFieldDefine.FieldName; if (!dbFieldDefine.AllowNull) { oParameter.Value = DataFunc.GetDefaultValue(dbFieldDefine.DbType); } return(oParameter); }