日期:2014-05-19  浏览次数:20752 次

小妹遇到一个超难的DataTable合并问题!
我把现有的数据存放到两个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#写的程序题!
我是一点思路都没有了,这怎么合并啊!

谢谢各位师哥了!


------解决方案--------------------
//--例子
//--关键是给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);

------解决方案--------------------
下面这是我做的项目的一段代码。和你说的差不多,你自己在看看,呵呵,希望能帮上你

for (int jj = 0; jj < this._da.Rows.Count; jj++)
{
//和班组里原有的人员进行比较,如果存在则不让增加,以免重复
if (gvBranchPersonnel.Rows[index].Cells[0].Value.ToString() == this._da.Rows[jj][0].ToString())
{
//如果有相同的则跳出这个循环