请教一个比较难的问题。。。。 怎么把datatable里的数据2行并成一行啊,有可行的办法吗?例如1111 1111 1111 11112222 2222 2222 22223333 3333 3333 33334444 4444 4444 44445555 5555 5555 5555并完后1111 1111 1111 1111 2222 2222 2222 22223333 3333 3333 3333 4444 4444 4444 44445555 5555 5555 5555 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说个笨方法列数固定的话,直接重新建一个table 8列的遍历原表 填进去!!!! 可以的,循环数据集,写入到List数组中。数组中可定义一个类,用来存放数据写入的时候可以判断当前行是否是奇数行,如果是则重新加入List DataTable dt1 = new DataTable(); dt1.Columns.Add(new DataColumn("A", typeof(String))); dt1.Columns.Add(new DataColumn("B", typeof(String))); dt1.Columns.Add(new DataColumn("C", typeof(String))); dt1.Columns.Add(new DataColumn("D", typeof(String))); DataRow dr = dt1.NewRow(); dr[0] = "1111"; dr[1] = "1111"; dr[2] = "1111"; dr[3] = "1111"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "2222"; dr[1] = "2222"; dr[2] = "2222"; dr[3] = "2222"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "3333"; dr[1] = "3333"; dr[2] = "3333"; dr[3] = "3333"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "4444"; dr[1] = "4444"; dr[2] = "4444"; dr[3] = "4444"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "5555"; dr[1] = "5555"; dr[2] = "5555"; dr[3] = "5555"; dt1.Rows.Add(dr); DataTable dt2 = new DataTable(); dt2.Columns.Add(new DataColumn("A", typeof(String))); dt2.Columns.Add(new DataColumn("B", typeof(String))); dt2.Columns.Add(new DataColumn("C", typeof(String))); dt2.Columns.Add(new DataColumn("D", typeof(String))); dt2.Columns.Add(new DataColumn("E", typeof(String))); dt2.Columns.Add(new DataColumn("F", typeof(String))); dt2.Columns.Add(new DataColumn("G", typeof(String))); dt2.Columns.Add(new DataColumn("H", typeof(String))); DataRow dr2=null; for (int i = 0; i < dt1.Rows.Count; i++) { if (i % 2 == 0) { dr2 = dt2.NewRow(); dr2[0] = dt1.Rows[i]["A"]; dr2[1] = dt1.Rows[i]["B"]; dr2[2] = dt1.Rows[i]["C"]; dr2[3] = dt1.Rows[i]["D"]; dt2.Rows.Add(dr2); } else { dr2[4] = dt1.Rows[i]["A"]; dr2[5] = dt1.Rows[i]["B"]; dr2[6] = dt1.Rows[i]["C"]; dr2[7] = dt1.Rows[i]["D"]; } } //构造DataTable1 DataTable dt1 = new DataTable(); dt1.Columns.Add(new DataColumn("A", typeof(String))); dt1.Columns.Add(new DataColumn("B", typeof(String))); dt1.Columns.Add(new DataColumn("C", typeof(String))); dt1.Columns.Add(new DataColumn("D", typeof(String))); DataRow dr = dt1.NewRow(); dr[0] = "1111"; dr[1] = "1111"; dr[2] = "1111"; dr[3] = "1111"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "2222"; dr[1] = "2222"; dr[2] = "2222"; dr[3] = "2222"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "3333"; dr[1] = "3333"; dr[2] = "3333"; dr[3] = "3333"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "4444"; dr[1] = "4444"; dr[2] = "4444"; dr[3] = "4444"; dt1.Rows.Add(dr); dr = dt1.NewRow(); dr[0] = "5555"; dr[1] = "5555"; dr[2] = "5555"; dr[3] = "5555"; dt1.Rows.Add(dr); //构造DataTable2 DataTable dt2 = new DataTable(); dt2.Columns.Add(new DataColumn("A", typeof(String))); dt2.Columns.Add(new DataColumn("B", typeof(String))); dt2.Columns.Add(new DataColumn("C", typeof(String))); dt2.Columns.Add(new DataColumn("D", typeof(String))); dt2.Columns.Add(new DataColumn("E", typeof(String))); dt2.Columns.Add(new DataColumn("F", typeof(String))); dt2.Columns.Add(new DataColumn("G", typeof(String))); dt2.Columns.Add(new DataColumn("H", typeof(String))); DataRow dr2=null; for (int i = 0; i < dt1.Rows.Count; i++) { if (i % 2 == 0) { //循环DataTable1,如果是奇数行就往DataTable2添加添加一行 dr2 = dt2.NewRow(); dr2[0] = dt1.Rows[i]["A"]; dr2[1] = dt1.Rows[i]["B"]; dr2[2] = dt1.Rows[i]["C"]; dr2[3] = dt1.Rows[i]["D"]; dt2.Rows.Add(dr2); } else { //循环DataTable1,如果是偶数行就更新DataTable2的EFGH列 dr2[4] = dt1.Rows[i]["A"]; dr2[5] = dt1.Rows[i]["B"]; dr2[6] = dt1.Rows[i]["C"]; dr2[7] = dt1.Rows[i]["D"]; } } dt.Columns.Add("列1"); dt.Columns.Add("列2"); dt.Columns.Add("列3"); dt.Columns.Add("列4"); dt.Rows.Add("111", "111", "111", "111"); dt.Rows.Add("222", "222", "222", "222"); dt.Rows.Add("333", "333", "333", "333"); dt.Rows.Add("444", "444", "444", "444"); dt.Rows.Add("555", "555", "555", "555"); dt.Columns.Add("列5"); dt.Columns.Add("列6"); dt.Columns.Add("列7"); dt.Columns.Add("列8"); for (int i = 0; i < dt.Rows.Count-1;i+=2 ) { dt.Rows[i]["列5"] = dt.Rows[i + 1]["列1"].ToString(); dt.Rows[i]["列6"] = dt.Rows[i + 1]["列2"].ToString(); dt.Rows[i]["列7"] = dt.Rows[i + 1]["列3"].ToString(); dt.Rows[i]["列8"] = dt.Rows[i + 1]["列4"].ToString(); } for (int i = dt.Rows.Count-1; i >= 0; i--) { if(i%2!=0) { dt.Rows.RemoveAt(i); } } c# 接口 JOSN 怎么在一个string类型变量后面加上一个char类型呢? 真没想到,小小问题难倒英雄汉 菜鸟问题 手动添加Table的<tr><td> 标签 合并两个picturebox中的图像 如何用TrackBar控制声音大小??? 怎样将文件上传到DB服务器? 怎么实现发送、接收自定义消息? 打包以后程序如何知道安装路径? c# 热键 未能找到类型或命名空间名称“ServiceDescriptionImporter”
写入的时候可以判断当前行是否是奇数行,如果是则重新加入List
DataTable dt1 = new DataTable();
dt1.Columns.Add(new DataColumn("A", typeof(String)));
dt1.Columns.Add(new DataColumn("B", typeof(String)));
dt1.Columns.Add(new DataColumn("C", typeof(String)));
dt1.Columns.Add(new DataColumn("D", typeof(String)));
DataRow dr = dt1.NewRow();
dr[0] = "1111";
dr[1] = "1111";
dr[2] = "1111";
dr[3] = "1111"; dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "2222";
dr[1] = "2222";
dr[2] = "2222";
dr[3] = "2222";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "3333";
dr[1] = "3333";
dr[2] = "3333";
dr[3] = "3333";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "4444";
dr[1] = "4444";
dr[2] = "4444";
dr[3] = "4444";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "5555";
dr[1] = "5555";
dr[2] = "5555";
dr[3] = "5555";
dt1.Rows.Add(dr);
DataTable dt2 = new DataTable();
dt2.Columns.Add(new DataColumn("A", typeof(String)));
dt2.Columns.Add(new DataColumn("B", typeof(String)));
dt2.Columns.Add(new DataColumn("C", typeof(String)));
dt2.Columns.Add(new DataColumn("D", typeof(String)));
dt2.Columns.Add(new DataColumn("E", typeof(String)));
dt2.Columns.Add(new DataColumn("F", typeof(String)));
dt2.Columns.Add(new DataColumn("G", typeof(String)));
dt2.Columns.Add(new DataColumn("H", typeof(String))); DataRow dr2=null;
for (int i = 0; i < dt1.Rows.Count; i++)
{
if (i % 2 == 0)
{
dr2 = dt2.NewRow();
dr2[0] = dt1.Rows[i]["A"];
dr2[1] = dt1.Rows[i]["B"];
dr2[2] = dt1.Rows[i]["C"];
dr2[3] = dt1.Rows[i]["D"];
dt2.Rows.Add(dr2);
}
else
{
dr2[4] = dt1.Rows[i]["A"];
dr2[5] = dt1.Rows[i]["B"];
dr2[6] = dt1.Rows[i]["C"];
dr2[7] = dt1.Rows[i]["D"];
}
}
//构造DataTable1
DataTable dt1 = new DataTable();
dt1.Columns.Add(new DataColumn("A", typeof(String)));
dt1.Columns.Add(new DataColumn("B", typeof(String)));
dt1.Columns.Add(new DataColumn("C", typeof(String)));
dt1.Columns.Add(new DataColumn("D", typeof(String)));
DataRow dr = dt1.NewRow();
dr[0] = "1111";
dr[1] = "1111";
dr[2] = "1111";
dr[3] = "1111"; dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "2222";
dr[1] = "2222";
dr[2] = "2222";
dr[3] = "2222";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "3333";
dr[1] = "3333";
dr[2] = "3333";
dr[3] = "3333";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "4444";
dr[1] = "4444";
dr[2] = "4444";
dr[3] = "4444";
dt1.Rows.Add(dr);
dr = dt1.NewRow();
dr[0] = "5555";
dr[1] = "5555";
dr[2] = "5555";
dr[3] = "5555";
dt1.Rows.Add(dr); //构造DataTable2
DataTable dt2 = new DataTable();
dt2.Columns.Add(new DataColumn("A", typeof(String)));
dt2.Columns.Add(new DataColumn("B", typeof(String)));
dt2.Columns.Add(new DataColumn("C", typeof(String)));
dt2.Columns.Add(new DataColumn("D", typeof(String)));
dt2.Columns.Add(new DataColumn("E", typeof(String)));
dt2.Columns.Add(new DataColumn("F", typeof(String)));
dt2.Columns.Add(new DataColumn("G", typeof(String)));
dt2.Columns.Add(new DataColumn("H", typeof(String))); DataRow dr2=null;
for (int i = 0; i < dt1.Rows.Count; i++)
{
if (i % 2 == 0)
{
//循环DataTable1,如果是奇数行就往DataTable2添加添加一行
dr2 = dt2.NewRow();
dr2[0] = dt1.Rows[i]["A"];
dr2[1] = dt1.Rows[i]["B"];
dr2[2] = dt1.Rows[i]["C"];
dr2[3] = dt1.Rows[i]["D"];
dt2.Rows.Add(dr2);
}
else
{
//循环DataTable1,如果是偶数行就更新DataTable2的EFGH列
dr2[4] = dt1.Rows[i]["A"];
dr2[5] = dt1.Rows[i]["B"];
dr2[6] = dt1.Rows[i]["C"];
dr2[7] = dt1.Rows[i]["D"];
}
}
dt.Columns.Add("列1");
dt.Columns.Add("列2");
dt.Columns.Add("列3");
dt.Columns.Add("列4");
dt.Rows.Add("111", "111", "111", "111");
dt.Rows.Add("222", "222", "222", "222");
dt.Rows.Add("333", "333", "333", "333");
dt.Rows.Add("444", "444", "444", "444");
dt.Rows.Add("555", "555", "555", "555"); dt.Columns.Add("列5");
dt.Columns.Add("列6");
dt.Columns.Add("列7");
dt.Columns.Add("列8");
for (int i = 0; i < dt.Rows.Count-1;i+=2 )
{
dt.Rows[i]["列5"] = dt.Rows[i + 1]["列1"].ToString();
dt.Rows[i]["列6"] = dt.Rows[i + 1]["列2"].ToString();
dt.Rows[i]["列7"] = dt.Rows[i + 1]["列3"].ToString();
dt.Rows[i]["列8"] = dt.Rows[i + 1]["列4"].ToString();
}
for (int i = dt.Rows.Count-1; i >= 0; i--)
{
if(i%2!=0)
{
dt.Rows.RemoveAt(i);
}
}