asp.net怎么合并两个table
table1有2列和table2有2列合并的效果是把table2放在table1右边合并后是4列...
table1 有2列 和 table2 有2列 合并的效果是 把table2放在table1右边合并后是4列
展开
1个回答
展开全部
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];
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询