DataTable获取某一列最大内容长度

在项目中,需要将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);
        }

 

posted @ 2016-10-09 09:43  杨老三帅  阅读(2240)  评论(0编辑  收藏  举报