这里说的最大长度,不是指该列的最大值,而是指数据内容的Length.当然,我们可以循环DataTable中的每一行来对比该列的长度。
代码如下:
public int GetMaxLength()
{
int maxlength=0;
foreach(DataRow dr in dt.Rows)
{
if(dr["列名"].ToString().Length >max)
{
max=dr["列名"].ToString().Length;
}
}
return maxlength;
}
这样自然也是能取到最大长度的,但因为要循环所有行,如果数据量大,性能可就要受影响了。这里本站介绍利用DataColumn的Expression属性而不循环行取列的最大长度的方法.
代码如下:
public int GetMaxLength()
{
DataTable dt = …… //自已取的DataTable
DataColumn maxLengthColumn = new DataColumn();
maxLengthColumn.ColumnName = "MaxLength";
maxLengthColumn.Expression = "len(convert(列名,'System.String'))";
dt.Columns.Add(maxLengthColumn);
object maxLength = dt.Compute("max(MaxLength)", "true");
dt.Columns.Remove(maxLengthColumn);
return Convert.ToInt32(maxLength)
}
b霳陙馷≧Kb蹚L?Yt0,g噀薔蛜哊俌UO鬴燫貧He剉蹚L堉b≧梲SO蚫\O g汵Q薙(W鵞嶯^?h槝h謆≧梲SOz鰁OPT膥TO(u ?h婲鯪eg蹚L?購7hZP剉,g(崱l g鸑UO
NFO/f憳A~剉婲鯪蚑擽孴Yt蚐€Oz廭'`齹