DataTable 行转成列 列转成行

guohouchang1 2009-06-03 02:24:04
如题:

Datable1

ID Name Age Mail
1 张三 100 zhangsan@qq.com

2 test 100 teste2@qq.com

3 test1 100 test1@qq.com

转换成
DataTable

ID 1 2 3

Name 张三 test test1

Age 100 100 100

Mail zhangsan@qq.com teste2@qq.com test1@qq.com
...全文
284 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rnmmdb 2009-10-08
  • 打赏
  • 举报
回复
我也是同样的问题没有解决
楼主是否解决了呀
可以把代码贴出来吗!谢谢了!!!
surlew 2009-06-03
  • 打赏
  • 举报
回复
列头没有换过来呀
surlew 2009-06-03
  • 打赏
  • 举报
回复

for(int i=0;i <DataTable1.Columns.count;i++ )
{
for(int j=0;j<DataTable1.Rows.count;j++)
{
if(j==0)
{
DataTable[i][j] = DataTable1.Columns[i].ColumnName;
}
else if(i==0)
{
DataTable.Columns[j].ColumnName = DataTable1[j][i];
}
else
{
DataTable[i][j] = DataTable1[j][i];
}
}
}

surlew 2009-06-03
  • 打赏
  • 举报
回复


for(int i=0;i <DataTable1.Columns.count;i++ )
{
for(int j=0;j<DataTable1.Rows.count;j++)
{
if(j==0)
{
DataTable[i][j] = DataTable1.Columns[i].ColumnName;
}
DataTable[i][j] = DataTable1[j][i];
}
}

我姓区不姓区 2009-06-03
  • 打赏
  • 举报
回复

DataTable dt1 = new DataTable();
dt1.Columns.AddRange(new DataColumn[] { new DataColumn("ID"), new DataColumn("Name"), new DataColumn("Age"), new DataColumn("Mail") });
dt1.Rows.Add(1, "张三", 100, " zhangsan@qq.com");
dt1.Rows.Add(2, " test", 100, " teste2@qq.com ");
dt1.Rows.Add(3, "test1", 100, "test1@qq.com ");
DataTable dt2 = new DataTable();
dt2.Columns.Add(new DataColumn());
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt2.Columns.Add(new DataColumn());
}
for (int i = 0; i < dt1.Columns.Count; i++)
{
DataRow row = dt2.NewRow();
row[0] = dt1.Columns[i].ColumnName;
for (int j = 1; j <= dt1.Rows.Count; j++)
{
row[j] = dt1.Rows[j - 1][i];
}
dt2.Rows.Add(row);
}
guohouchang1 2009-06-03
  • 打赏
  • 举报
回复
SQL如何实现,一样给分~
fengjian_428 2009-06-03
  • 打赏
  • 举报
回复
用SQL的行转列要简单得多
zgke 2009-06-03
  • 打赏
  • 举报
回复

DataTable _Table =new DataTable();
_Table.Columns.Add("ID");
_Table.Columns.Add("Name");
_Table.Columns.Add("Age");
_Table.Columns.Add("Mail");

_Table.Rows.Add(new object[]{"1","张三","100","zhangsan@qq.com"});
_Table.Rows.Add(new object[]{"2","test","100","teste2@qq.com"});
_Table.Rows.Add(new object[]{"3","test1","100","test1@qq.com"});

dataGridView1.DataSource = GetReverseTable(_Table);


public DataTable GetReverseTable(DataTable p_Table)
{
DataTable _Table = new DataTable();
for (int i = 0; i != p_Table.Rows.Count + 1; i++)
{
_Table.Columns.Add("Column"+i.ToString());
}

for (int i = 0; i != p_Table.Columns.Count; i++)
{
object[] _ObjectValue = new object[p_Table.Rows.Count + 1];
_ObjectValue[0] = p_Table.Columns[i].ColumnName;
for (int z = 0; z != p_Table.Rows.Count; z++)
{
_ObjectValue[z + 1] = p_Table.Rows[z][i];
}
_Table.Rows.Add(_ObjectValue);
}
return _Table;
}
jianglai11 2009-06-03
  • 打赏
  • 举报
回复
dt1是原来的table,dt2是要的table
for( int i=0;i<dt1.rows.count;i++ )
{
for( int;j=i;j<dt1.cloumns.count;j++ )
{
dt2[0][j] = dt1[i][0]; //将dt1的第i行第0列的数据赋给dt2的第0行第j列
}
}

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧