asp.net怎么合并两个table

table1有2列和table2有2列合并的效果是把table2放在table1右边合并后是4列... table1 有2列 和 table2 有2列 合并的效果是 把table2放在table1右边合并后是4列 展开
 我来答
handangaoyang
2014-04-13 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:894万
展开全部
            DataTable table = new DataTable();
            DataColumn[] cols = new DataColumn[]
            {                
                new DataColumn("ID", typeof(string)),
                new DataColumn("Name", typeof(string)),
                new DataColumn("Birth", typeof(DateTime))
            };
            table.Columns.AddRange(cols);

            for (int i = 0; i < 3; i++)
            {
                DataRow row = table.NewRow();
                row["ID"] = (i + 1).ToString();
                row["Name"] = "stu" + i.ToString();
                row["Birth"] = DateTime.Now.AddYears(-10).AddDays(i);
                table.Rows.Add(row);
            }

            DataTable table2 = new DataTable();
            DataColumn[] cols2 = new DataColumn[]
            {                
                new DataColumn("ID2", typeof(string)),
                new DataColumn("Name2", typeof(string)),
                new DataColumn("Birth2", typeof(DateTime))
            };
            table2.Columns.AddRange(cols2);

            for (int i = 0; i < 3; i++)
            {
                DataRow row = table2.NewRow();
                row["ID2"] = (i + 1).ToString();
                row["Name2"] = "stu" + i.ToString();
                row["Birth2"] = DateTime.Now.AddYears(-10).AddDays(i);
                table2.Rows.Add(row);
            }

            foreach (DataColumn col in table2.Columns)
            {
                DataColumn colClone = new DataColumn(col.ColumnName, col.DataType);
                table.Columns.Add(colClone);
                
                //主table的数据行数必须>=子table的数据行数
                if (table.Rows.Count >= table2.Rows.Count)
                {
                    for (int i = 0; i < table2.Rows.Count; i++)
                    {
                        table.Rows[i][col.ColumnName] = table2.Rows[i][col.ColumnName];
                    }
                }
            }
更多追问追答
追问
能不能加上注释看看?
追答

前面创建table的语句,我相信你懂的。

            //合并table
            foreach (DataColumn col in table2.Columns)
            {
                //克隆table2中的列(一个列对象只能添加入一个table中,所以这里只能克隆一个列对象)
                DataColumn colClone = new DataColumn(col.ColumnName, col.DataType);
                //主table添加table2的列
                table.Columns.Add(colClone);
                 
                //主table的数据行数必须>=子table的数据行数
                if (table.Rows.Count >= table2.Rows.Count)
                {
                    //赋值
                    for (int i = 0; i < table2.Rows.Count; i++)
                    {
                        table.Rows[i][col.ColumnName] = table2.Rows[i][col.ColumnName];
                    }
                }
            }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式