手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

在.NET中,将竖表变横表(支持固定列)

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

竖表变横表(支持固定列)

根据LoveCherry的竖变横方法改进而来
public DataTable MakeData(DataTable dt,int iColumnSize,int[] iColumnID) //iColumnsize:重复列数 iColumnID 需要横向排列的列的序号数组
{
int ColumnCount=iColumnID.Length;
int totalRows=dt.Rows.Count;
int itmp=dt.Rows.Count%iColumnSize; //行数
int iRows; //行数
if(itmp==0)
iRows=dt.Rows.Count/iColumnSize;
else
iRows=dt.Rows.Count/iColumnSize 1;
DataTable newdt=new DataTable();
for(int i=0;i<iColumnSize;i )
{
for(int j=0;j<ColumnCount;j )
{ string aa=dt.Columns[iColumnID[j]].ColumnName i;
int bb=iColumnID[j];
DataColumn dc=new DataColumn(dt.Columns[iColumnID[j]].ColumnName i,dt.Columns[iColumnID[j]].DataType);

newdt.Columns.Add(dc);
}
}
for(int i=0;i<iRows;i )
{
DataRow dr=newdt.NewRow();
for(int j=0;j<iColumnSize;j )
{
for(int k=0;k<ColumnCount;k )
{
if((i j*iColumnSize)<dt.Rows.Count)
{
string aa=dt.Columns[iColumnID[k]].ColumnName j;
try
{
dr[dt.Columns[iColumnID[k]].ColumnName j]=dt.Rows[iRows*j i][iColumnID[k]];
}
catch
{}
}
}
}
newdt.Rows.Add(dr);
}
return newdt;
}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!