分享

合并两个DataTable中的列(column) - roki - 网易博客

 thy 2008-09-02

合并两个DataTable中的列(column)

发现.net好像并没有提供这样的功能,于是自己写了一个合并datatable的方法,用起来还不错

public static DataTable MergeDataTable(DataTable dt1,DataTable dt2)
    {
        //定义dt的行数
        int dtRowCount = 0;

        //dt的行数为dt1或dt2中行数最大的行数
        if (dt1.Rows.Count > dt2.Rows.Count)
        {
            dtRowCount = dt1.Rows.Count;
        }
        else
        {
            dtRowCount = dt2.Rows.Count;
        }

        dt = new DataTable();
        //向dt中添加dt1的列名
        for (int i = 0; i < dt1.Columns.Count; i++)
        {
            dt.Columns.Add(dt1.Columns[i].ColumnName.ToString());
        }

        //向dt中添加dt2的列名
        for (int i = 0; i < dt2.Columns.Count; i++)
        {
            dt.Columns.Add(dt2.Columns[i].ColumnName.ToString());
        }

        for (int i = 0; i < dtRowCount; i++)
        {
            row = dt.NewRow();
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                for (int k = 0; k < dt1.Columns.Count ; k++)
                {
                    if ((dt1.Rows.Count - 1) >= i)
                    {
                        row[k] = dt1.Rows[i].ItemArray[k];
                    }
                }

                for (int k = 0; k < dt2.Columns.Count ; k++)
                {
                    if ((dt2.Rows.Count - 1 )>= i)
                    {
                        row[dt1.Columns.Count + k] = dt2.Rows[i].ItemArray[k];
                    }
                }
            }
            dt.Rows.Add(row);
        }
        return dt;
    }

 

可以将你的一个ds中的Table合并完.
 private void MergeDataTables()
    {
        dt = new DataTable();
        dt = ds.Tables[0];
        for (int i = 0; i < ds.Tables.Count - 1; i++)
        {
            dt = ClsDataHandler.MergeDataTable(dt, ds.Tables[i + 1]);
        }
    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多