现有dataGridView和dataTable,希望将dataTable中数据append到dataGridView表中
但是在append之前需要check一下是否有重复项目,怎么实现
例如:
dataGridView:
name id
aa   1
bb   2
cc   3dataTable:
name id
dd   4
aa   1
ee   5
因为dataTable中存在aa和dataGridView的重复了,所以返回false

解决方案 »

  1.   

    static void Main(string[] args)
    {
        int[] a = { 1, 2, 3, 4, 5, 6, 7 };
        int[] b = { 4, 5, 6, 7, 8, 9, 10 };
        int[] c = { 1, 2, 3, 3, 4, 1, 2, 4, 6, 1, 6, 5 };    // 交集
        var ** = a.Intersect(b);    // 并集
        var ** = a.Union(b);    // a有b没有的
        var diff1 = a.Except(b);    // b有a没有的
        var diff2 = b.Except(a);    var max = a.Max();
        var min = a.Min();
        var avg = a.Average();
        var dis = c.Distinct();    Print(**);
        Print(**);
        Print(diff1);
        Print(diff2);
        Console.WriteLine(max);
        Console.WriteLine(min);
        Console.WriteLine(avg);
        Print(dis);    Console.ReadKey();
    }private static void Print(IEnumerable<int> list)
    {
        foreach (var item in list)
        {
            Console.Write(item + " ");
        }
        Console.WriteLine();
    }
      

  2.   

    var table = dataGridView.DataSource as DataTable;
    比较两个表并向table添加非重复的row
      

  3.   

    DataTable有合并功能,通过设置主键进行合并你可以用DataTable和表格的数据源进行一次合并即可。
      

  4.   

    我的datagridview不是绑定数据源得到的,是通过一行一行add(datarow)得到的,所以是不是不能这样类型转换?
      

  5.   

    这里的合并是指merge吗?
    这个怎么实现?可以具体点么?
    我的实现功能是这样的:
    多个datagridview,现需多次从dgv1添加数据,然后根据需要显示的需求显示到dgv2,dgv3...,我实现的方法每次添加是先dgv1->datatable,再根据需求datatable->dgv2,dgv3...,这儿的datatable是一个类里面的局部变量,保存了所有信息,在从datatable到dgv2,dgv3传递过程中,通过dataview来根据需求选择不同信息显示。但是重复的选项不允许添加(一个row里面的name&ID全部相同全算重复)。
    这种思想有没有错?根据你的说法如何实现?