datatable行转列示例分享

560 查看

复制代码 代码如下:

 /// <summary>
  /// DataTable行转列
  /// </summary>
  /// <param name="dtable">需要转换的表</param>
  /// <param name="head">转换表表头对应旧表字段(小写)</param>
  /// <returns></returns>
  public static DataTable DataTableRowtoCon(DataTable dtable, string head)
  {
   DataTable dt = new DataTable();
   dt.Columns.Add("NumberID");
   for (int i = 0; i < dtable.Rows.Count; i++)
   {//设置表头
    dt.Columns.Add(dtable.Rows[i][head].ToString());
   }
   for (int k = 0; k < dtable.Columns.Count; k++)
   {
    string temcol = dtable.Columns[k].ToString();
    if (dtable.Columns[k].ToString().ToLower() != head)//过滤掉设置表头的列
    {
     DataRow new_dr = dt.NewRow();
     new_dr[0] = dtable.Columns[k].ToString();
     for (int j = 0; j < dtable.Rows.Count; j++)
     {
      string temp = dtable.Rows[j][k].ToString();
      new_dr[j + 1] = (Object)temp;
     }
     dt.Rows.Add(new_dr);
    }
   }
   return dt;
  }