代码改变世界

DataTable行列转置

2010-09-19 18:07  三皮开发时  阅读(489)  评论(0编辑  收藏  举报

竖向数据:

城市 员工人数
成都 10
深圳 8
北京 9
上海 3
大连

6

 


横向数据:
城市 成都 深圳 北京 上海 大连
员工人数 10 8 9 3 6

假设您的原始datatale是dt,在dt后加入下面的语句

      DataTable dtNew = new DataTable();
        dtNew.Columns.Add("ColumnName", typeof(string));
        for (int i = 0; i < dt.Rows.Count; i++)
       {
            dtNew.Columns.Add("Column" + (i + 1).ToString(), typeof(string));
       }
        foreach (DataColumn dc in dt.Columns)
        {
            DataRow drNew = dtNew.NewRow();
            drNew["ColumnName"] = dc.ColumnName;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                drNew[i + 1] = dt.Rows[i][dc].ToString();
            }
            dtNew.Rows.Add(drNew);
        }


经过上面的语句,您的dt就已经成功转置了,你可以直接用它作为datagrid 或者gridview的数据源。