private static string FillWithDefaultValue(object value, ColumnInfo aColumninfo) { if (aColumninfo == null || string.IsNullOrEmpty(aColumninfo.DefaultValue) || !aColumninfo.MaxLength.HasValue) { //格納先のテーブルカラムの最大文字数が分からない、 //又はDEFAULT値が設定されていない場合、文字を充填しない return(value.ToString()); } else { //テーブルカラムの(Shift_JISにおける)最大Byte数 int columnMaxByte = aColumninfo.MaxLength.Value; //DEFAULT値の先頭一文字目を充填文字とする char fillChar = aColumninfo.DefaultValue.ToCharArray(0, 1)[0]; if (char.IsDigit(fillChar)) { //充填文字が数字文字の場合、columnValueの先頭に充填文字を充填する return(value.ToString().PadLeft(columnMaxByte, fillChar)); } else { //columnValueの末尾に充填文字を充填する return(JkCastEditor.BytePadRight(value.ToString(), columnMaxByte, fillChar)); } } }
//文字列をDBのCHAR型項目から取得する時は、空白を削除する public override object BeforeCast_ViewColumnType(StringViewColumnType viewColumnType , ViewColumnInfo aViewColumnInfo , object viewColumnValue) { //テーブルカラムのデフォルト値からは空白を削除しない if (aViewColumnInfo.ViewName == "ColumnInfo" && aViewColumnInfo.ViewColumnName == "DefaultValue") { return(viewColumnValue.ToString()); } return(JkCastEditor.TrimWithDefaultValue(viewColumnValue.ToString(), null)); }