怎么把datatable里的数据2行并成一行啊,有可行的办法吗?例如
1111 1111 1111 1111
2222 2222 2222 2222
3333 3333 3333 3333
4444 4444 4444 4444
5555 5555 5555 5555并完后
1111 1111 1111 1111 2222 2222 2222 2222
3333 3333 3333 3333 4444 4444 4444 4444
5555 5555 5555 5555

解决方案 »

  1.   

    说个笨方法列数固定的话,直接重新建一个table  8列的遍历原表  填进去!!!!
      

  2.   

    可以的,循环数据集,写入到List数组中。数组中可定义一个类,用来存放数据
    写入的时候可以判断当前行是否是奇数行,如果是则重新加入List
      

  3.   


    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"];
                }
            }
      

  4.   


            //构造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"];
                }
            }
      

  5.   


                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);
                    }
                }