//判断重复
                                decimal alli = 0;
                                for (int i = 0; i < sqlds.Tables[0].Rows.Count; i++)
                                {
                                    string tempitem = sqlds.Tables[0].Rows[i][0].ToString();
                                    DataRow[] rows;
                                    rows = sqlds.Tables[0].Select("SNumber='" + tempitem + "'");
                                    if (rows.Length > 1)
                                    {
                                        alli = alli + 1;
                                        Response.Write("重复号:" + tempitem + "<br>");
                                        sqlds.Tables[0].Rows[i].Delete();
                                    }
                                }
                                Response.Write("重复数:" + alli + "<br>");现在是循环判断,根据SNumber来判断的,执行速度很慢
有其它的更分的方法吗

解决方案 »

  1.   

    3w条记录放dataset里,肯定快不了。
    改变一下逻辑,用sql语句来完成你要实现的功能。
      

  2.   

    用事务SqlTransaction提交,重复的规则由你定呀,你设定主键重复即算重复。
    另外需要知道你要提交的这1千条数据也是sql查询出来的吗?如果是可以用:
    insert into table1 (字段1,字段2) select 字段1,字段2 from table2 where ...
    批量插入
      

  3.   

    当你查数据的时候就该先过滤掉重复的 
    在sql 语句中写 
    select distinct tempitem  from  tab   where  条件  
      

  4.   

    如果要在内存中判断,不能使用DataTable来处理,可以使用 SortedList<K,T> 集合来保存数据,或者放在数组中然后使用Array.Sort进行排序。