DataTable行列转置
2014-02-19 16:06
232 查看
DataTable行列转置,实现横向显示数据记录
横向
以前早就遇到过需要横向显示数据记录的问题,但都用其他方法敷衍过去了,今天又遇到这个问题。心里不是滋味,狠了一下心,决定想想怎么实现。
最后还是决定在datatable中进行行列的转置,所以先将您的数据都填充到datatable中。
假设您的原始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的数据源。
城市 | 员工人数 |
成都 | 10 |
深圳 | 8 |
北京 | 9 |
上海 | 3 |
大连 | 6 |
城市 | 成都 | 深圳 | 北京 | 上海 | 大连 |
员工人数 | 10 | 8 | 9 | 3 | 6 |
最后还是决定在datatable中进行行列的转置,所以先将您的数据都填充到datatable中。
假设您的原始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的数据源。
相关文章推荐
- C# 在datatable中进行行列的转置
- C# 在datatable中进行行列的转置
- datatable中进行行列的转置
- DataTable行列转置,实现横向显示数据记录
- DataTable 行列转置
- DataTable行列转置,实现横向显示数据记录
- DataTable行列转置,实现横向显示数据记录
- DataTable行列转置,实现横向显示数据记录
- datatable中进行行列的转置
- DataTable行列转置
- DataTable行列转置
- datatable的数据转置
- sas转java(1)截取子矩阵、unique、获取矩阵的行列数、创建特殊矩阵、求矩阵中的最大最小值、横纵合并矩阵、将矩阵转换为0,1形式、转置求逆
- LinQ实现DataTable不定行转列 行列转换
- ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)
- YTU:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
- ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)
- Oracle 行列转置
- DataTable 行列转换 将原来的行表转化成交叉表,无对应值赋默认值,用于统计显示或报表
- 好好学习:Excel中如何行列转置