在項目中,需要將DataTable內容存入到DBF中,DBF要求某列的長度是固定的,不是可變得。因此需要計算出DatatTable中某一列的最大內容長度,從而定義DBF字段中的長度。方法實現如下:
///實現思路,增加一列用來存放內容的長度,然后對記錄長度的這列用max表達式計算出最大
///colName:列名
public static int GetMaxLength(DataTable dt,string colName) { DataColumn maxLengthColumn = new DataColumn();//從新定義一列,用來存放內容的長度 maxLengthColumn.ColumnName = "MaxLength";//新列列名 maxLengthColumn.DataType = typeof(Int32);//新列類型 //其中name為列名,用到的函數為len maxLengthColumn.Expression = "len(convert("+colName+",'System.String'))";//len表達式用來計算長度 dt.Columns.Add(maxLengthColumn); //用到的函數為Max object maxLength = dt.Compute("Max(MaxLength)", "");//max表達式進行計算 dt.Columns.Remove(maxLengthColumn);//移除新增列,不破壞原有DatatTable return Convert.ToInt32(maxLength); }