我把现有的数据存放到两个DataTable表里(如下),表名:CarTable
Num  CarID GroupID   CarNum   CarMotorman
 1     1      1     京A3352      张三
 2     3      1     京B4321      李四
 3     4      3     京C7680      王五
 4     5      1     京F3360      李六表名: GroupTable
Num   GroupID   GroupName
 1      1       车辆一组
 2      3       车辆三组我想把这些表里的数据按照车辆组来分类,在存到另外一个DataTable里。
我想格式如下:表名:NewTable
Num  CarID GroupID   GroupName   CarNum   CarMotorman
 1     1      1      车辆一组   京A3352     张三
 2     3      1      车辆一组   京B4321     李四
 3     4      3      车辆三组   京C7680     王五
 4     5      1      车辆一组   京F3360     李六如何做!请各位师哥明示。这个问题太折磨我了!
小妹在这里说一下这里不是数据库题,是用C#写的程序题!
我是一点思路都没有了,这怎么合并啊!谢谢各位师哥了!

解决方案 »

  1.   

    如果是数据库的话 可以用sql语句
    但要程序内存中的话  就需要导表了
    重新声明DataTable 然后向里面一条一条添加值
      

  2.   

    for 循环2个表 
    一条一条的查找 每一条记录 
    插入第3个表
      

  3.   

    //--例子
    //--关键是给DataTable添加键值PrimaryKey.
    //--在此例中"ID"应是关键字了.你的就是GroupID  
    DataTable dt1 = new DataTable();
    dt1.Columns.Add("ID", typeof(int));
    dt1.Columns.Add("Name", typeof(string));
    dt1.PrimaryKey = new DataColumn[] { dt1.Columns[0]};
    dt1.Rows.Add(1, "Age");
    dt1.Rows.Add(2, "Apple");
    dt1.Rows.Add(3, "Orange");DataTable dt2 = new DataTable();
    dt2.Columns.Add("ID", typeof(int));
    dt2.Columns.Add("Price", typeof(decimal));
    dt2.PrimaryKey = new DataColumn[] { dt2.Columns[0] };
    dt2.Rows.Add(1, 10);
    dt2.Rows.Add(2, 6);
    dt2.Rows.Add(3, 7);DataTable dt3 = dt1.Copy();
    dt3.Merge(dt2);
      

  4.   

    select   
      from   a   
      left   join   b   
      on   ...
      

  5.   

    下面这是我做的项目的一段代码。和你说的差不多,你自己在看看,呵呵,希望能帮上你for (int jj = 0; jj < this._da.Rows.Count; jj++)
                        {
                            //和班组里原有的人员进行比较,如果存在则不让增加,以免重复
                            if (gvBranchPersonnel.Rows[index].Cells[0].Value.ToString() == this._da.Rows[jj][0].ToString())
                            {
                                //如果有相同的则跳出这个循环
                                jj = _da.Rows.Count;
                                //bool变量为真
                                bf = true;
                            }                    }
                        //根据bool变量进行判断,如果为假则说明没有相同的,可以增加
                        if (bf == false)
                        {
                            //加到临时存放选中人员的DT里
                            DataRow row = _dtBranch.NewRow();
                            row["ID"] = gvBranchPersonnel.Rows[index].Cells[0].Value.ToString();
                            row["name"] = gvBranchPersonnel.Rows[index].Cells[1].Value.ToString();
                            row["sex"] = gvBranchPersonnel.Rows[index].Cells[2].Value.ToString();
                            row["age"] = gvBranchPersonnel.Rows[index].Cells[3].Value.ToString();
                            row["groupID"] = gvBranchPersonnel.Rows[index].Cells[4].Value.ToString();
                            row["branchID"] = gvBranchPersonnel.Rows[index].Cells[5].Value.ToString();
                            _dtBranch.Rows.Add(row);                        //加到存放班组人员信息的DT里
                            DataRow row1 = _da.NewRow();
                            row1["ID"] = gvBranchPersonnel.Rows[index].Cells[0].Value.ToString();
                            row1["name"] = gvBranchPersonnel.Rows[index].Cells[1].Value.ToString();
                            row1["sex"] = gvBranchPersonnel.Rows[index].Cells[2].Value.ToString();
                            row1["age"] = gvBranchPersonnel.Rows[index].Cells[3].Value.ToString();
                            row1["groupID"] = gvBranchPersonnel.Rows[index].Cells[4].Value.ToString();
                            row1["branchID"] = gvBranchPersonnel.Rows[index].Cells[5].Value.ToString();
                            _da.Rows.Add(row1);
                        }
                    }
      

  6.   

    创建新表,把两个表的数据按GroupID合并成新表的数据,添加进去就行了,