c#給DataTable數據添加一列序號

使用過,記録下來,方便下次使用.

    `//針對合併的DT增加一列序號
    private DataTable AddSeriNumToDataTable(DataTable dt)
    {
        //需要返回的值 
        DataTable dtNew;
        if (dt.Columns.IndexOf("INDEX") >= 0)//判断是否存在index序号列
        {
            dtNew = dt;
        }
        else //添加一序号列,并且在第一列 
        {
            int rowLength = dt.Rows.Count;//行数
            int colLength = dt.Columns.Count;//列数
            DataRow[] newRows = new DataRow[rowLength];//创建行集合

            dtNew = new DataTable();
            //在第一列添加“序号”列 
            dtNew.Columns.Add("INDEX");//添加序号列
            for (int i = 0; i < colLength; i++)//循环列
            {
                dtNew.Columns.Add(dt.Columns[i].ColumnName);//为新表格添加列
                //复制dt中的数据 
                for (int j = 0; j < rowLength; j++)//循环行
                {

                    if (newRows[j] == null)
                        newRows[j] = dtNew.NewRow();
                    //将其他数据填充到第二列之后,因为第一列为新增的序号列 
                    newRows[j][i + 1] = dt.Rows[j][i];
                }
            }
            foreach (DataRow row in newRows)
            {
                dtNew.Rows.Add(row);
            }
        }
        //对序号列填充,从1递增 
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dtNew.Rows[i]["INDEX"] = i + 1;
        }

        return dtNew;

    }`
posted @   暮夜秋雨  阅读(339)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示