科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在.NET中,将竖表变横表(支持固定列)

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

竖表变横表(支持固定列)   根据LoveCherry的竖变横方法改进而来

作者:中国IT实验室 来源:中国IT实验室 2007年9月5日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
  竖表变横表(支持固定列) 
   
  根据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;
   }

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章