1.新建一个空Table存放数据
//构建新的结果集
DataTable newdt = new DataTable();
try
{
newdt.Columns.Add("ProvinceName");
//数值
newdt.Columns.Add("DataValue1");
//增速-设置格式为数字
newdt.Columns.Add("DataValue2", System.Type.GetType("System.Int32"));
DataTable dt = showBll.DomesticNeed(typestr2, Sel_time);
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = newdt.NewRow();
dr["ProvinceName"] = "name1";
dr["DataValue1"] = "Value1";
dr["DataValue2"] = "Value2";
newdt.Rows.Add(dr);
}
}
}
catch (Exception)
{
throw;
}
return newdt;
2.将两个格式一致的Table竖拼接在一起
//竖拼接后得到的DataTable
DataTable Value = new DataTable();
//对拼接后的DataTable进行排序后获得最终的DataTable2
DataTable dt2 = new DataTable();
//获取需要循环的第一个数据
DataTable dt = GetProvinceall();
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string id = dt.Rows[i]["ID"].ToString();
DataTable Valuedt = GetNeedData(id);
if (Valuedt.Rows.Count > 0)
{
//进行竖拼接
Value.Merge(Valuedt);
}
}
}
//对新的Table中字段进行排序
if (Value.Rows.Count > 0)
{
DataView dv = Value.DefaultView;
dv.Sort = "tongsu desc";
dt2 = dv.ToTable();
}
return dt2;
3.将两个DataTable 横拼接在一起
//引用方法
DataTable newdt=UniteDataTable(dtlist1, dtlist2, "newdt");
//两个Data合并
private DataTable UniteDataTable(DataTable dt1, DataTable dt2, string DTName)
{
DataTable dt3 = dt1.Clone();
for (int i = 0; i < dt2.Columns.Count; i++)
{
dt3.Columns.Add(dt2.Columns[i].ColumnName);
}
object[] obj = new object[dt3.Columns.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1.Rows[i].ItemArray.CopyTo(obj, 0);
dt3.Rows.Add(obj);
}
if (dt1.Rows.Count >= dt2.Rows.Count)
{
for (int i = 0; i < dt2.Rows.Count; i++)
{
for (int j = 0; j < dt2.Columns.Count; j++)
{
dt3.Rows[i][j + dt1.Columns.Count] = dt2.Rows[i][j].ToString();
}
}
}
else
{
DataRow dr3;
for (int i = 0; i < dt2.Rows.Count - dt1.Rows.Count; i++)
{
dr3 = dt3.NewRow();
dt3.Rows.Add(dr3);
}
for (int i = 0; i < dt2.Rows.Count; i++)
{
for (int j = 0; j < dt2.Columns.Count; j++)
{
dt3.Rows[i][j + dt1.Columns.Count] = dt2.Rows[i][j].ToString();
}
}
}
dt3.TableName = DTName;
return dt3;
}
菜鸟总结 多存疏漏 感谢指正