本帖最后由 tonyepaper 于 2009-10-21 23:55:23 编辑

解决方案 »

  1.   

    我认为:
    是考虑并发的问题以及在已经取得的数据集的自动ID不一定和数据库物理ID相同。但要确保数据集的关联关系所以才这么做。
    即可能取得数据集(内存)后,其他客户端有可以更改了这个物理表的数据。但操作希望无论是内存还是物理都确定关系。args.Status = UpdateStatus.SkipCurrentRow;  //确保不变动IDint currentkey = (int)args.Row["OrderID"];  //取得原来的IDargs.Row["OrderID"] = args.Row.GetParentRow("OrdDetail")["OrderID",DataRowVersion.Original];
    args.Row.AcceptChanges(); //获取父级ID并更新,(数据库物量关系)args.Row["OrderID"] = currentkey;//改回来是为了确保数据集的关系。仅个人看法。
      

  2.   

    SELECT MIN(T1.num) AS low, MAX(T1.num) AS high, T1.data
    FROM t T1 LEFT OUTER JOIN
          t T2 ON T2.num =
              (SELECT MIN(num)
             FROM T
             WHERE num > T1.num AND data <> T1.data)
    GROUP BY T1.data, T2.num
      

  3.   

    在这里找到了相关资料。有兴趣的可以看一下。
    http://msdn.microsoft.com/en-us/magazine/cc188728.aspx