• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一个具有上进心的码农
因为一篇文章中有很多是从很多篇文章中摘取的,请恕我没有一一说明摘取出处,如果没有说明,则该文章默认是摘取,如有侵犯您的权益,请与我联系,将会马上删除。
博客园    首页    新随笔    联系   管理    订阅  订阅

DATATABLE行转列

Code
public static void Main()    
{    
    DataTable dt 
= new DataTable();    
    dt.Columns.Add(
"name");    
    dt.Columns.Add(
"type");    
    dt.Columns.Add(
"relt");    
   
    
for (int i = 0; i < 4; i++)    
    {    
        DataRow dr 
= dt.NewRow();    
        dr[
"name"] = "name" + i;    
        dr[
"type"] = "type" + i;    
        dr[
"relt"] = "relt" + i;    
   
        dt.Rows.Add(dr);    
    }    
   
    DisplayTable(dt);    
   
    Console.WriteLine(
"\r\n =====> 进行行列转换 \r\n");    
   
    DisplayTable(ColumnToRow(dt, 
0));    
   
    Console.ReadLine();    
}    
   
public static DataTable ColumnToRow(DataTable src_dt, int columnIndex) //columnIndex 用来当作新列名的列    
{    
    DataTable dt 
= new DataTable();    
    dt.Columns.Add(src_dt.Columns[columnIndex].ColumnName);    
   
    
foreach (DataRow dr in src_dt.Rows)    
        dt.Columns.Add(dr[columnIndex].ToString());    
   
    
int n = src_dt.Columns.Count;    
    
for (int i = 0; i < n; i++)    
    {    
        
if (i == columnIndex) continue; //如果是被当作列名的列,则跳过    
   
        DataRow new_dr 
= dt.NewRow();    
        
string columnName = src_dt.Columns[i].ColumnName;    
        new_dr[
0] = columnName;    
   
        
foreach (DataRow dr in src_dt.Rows)    
        {    
            
string newColumnName = dr[columnIndex].ToString();    
            new_dr[newColumnName] 
= dr[columnName];    
        }    
   
        dt.Rows.Add(new_dr);    
    }    
   
    
return dt;    
}  
posted @ 2009-10-30 11:24  不若相忘于江湖  阅读(590)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3