在DataGrid1中有两个字段:
部门 员工
---------
CM   101
AD   102
CM   101
FB   103
我在保存之前要判断DataGrid1中是否有重复数据,此表中数据量可能会很大,请问该怎么做?

解决方案 »

  1.   

    检索到数据库到查询吧,这样简单。递归遍历DataGrid1的话效率太低,还无法保证多人同时操作的重复判断。
      

  2.   

    我的意思是判断DataGrid1中是否有重复数据,而不是和数据库中的数据对比判断,如果DataGrid1的数据不多的话如何做.
      

  3.   

    如果绑定数据到DataGrid之前,把数据同时设置到Session变量。
    例如:Session["dt"] = dtBound;
    判断时,只需要DataTable dt1 = (DataTable)Session["dt"];可以通过遍历dt1的rows来判断是否有重复行。
      

  4.   

    如果Grid中绑定的是datatable,那么可以在datatable中增加一个Constraints来进行检查。
    代码示例:
    DataTable dt = new DataTable();
                DataColumn dc = new DataColumn("aa");
                dt.Columns.Add(dc);
                DataRow dr = dt.NewRow();
                dr["aa"] = "1";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["aa"] = "2";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["aa"] = "3";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["aa"] = "3";
                dt.Rows.Add(dr);
                dt.Constraints.Add("test", dt.Columns[0], true);数据重复会抛出异常。