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);
        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM