/// <summary>
    /// 删除重复行
    /// </summary>
    /// <param name="table">原表</param>
    private DataTable DeleteOverlapping(DataTable dtClass)
    {
        DataTable tempTable = dtClass.Clone(); //copy原表的表结构
        ArrayList al = new ArrayList(); //新建ArrayList,把要检查的字段放入该列表中。
        for (int i = 0; i < dtClass.Rows.Count; i++) //循环原来,如果把不重复的行加入到新表中,如果重复,则不处理。
        {
            DataRow row = dtClass.NewRow();
            row["class"] = dtClass.Rows[i]["class"]; //假设要检查的列名是class,则按这样写即可。
            if (!al.Contains(row["class"])) //如果要检查的列表中,不存在,则把这一行的数据加入到新表
            {
               tempTable.Rows.Add(row);            
              al.Add(row["class"]);
            }
        }
        return tempTable; //返回删除后的DataTable
    }
    private void ClassList()
    {   
        DataTable dtClass = new DataTable();
        dtClass.Columns.Add(new DataColumn("class", System.Type.GetType("System.String")));
        dtClass = DeleteOverlapping(dtClass);
        foreach (XmlNode classNode in Doc.SelectNodes(@"//root/class"))
        { 
            DataRow row = dtClass.NewRow();
            if (classNode.Attributes["name"] != null)
            {
                row["class"] = classNode.Attributes["name"].Value;
            }
           dtClass.Rows.Add(row);
        }
        if (dtClass != null)
        {
                DropDownList1.DataValueField = "class";
                DropDownList1.DataTextField = "class";
                DropDownList1.DataSource = dtClass;
                DropDownList1.DataBind();
        }
    }

解决方案 »

  1.   

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;326176虽然是英文的,但是 只要您能看懂代码, 绝对可以搞定
      

  2.   

            private DataTable DeleteOverlapping(DataTable dtClass)
            {
                DataTable tempTable = dtClass.Clone(); //copy原表的表结构
                ArrayList al = new ArrayList(); //新建ArrayList,把要检查的字段放入该列表中。
                for (int i = 0; i < dtClass.Rows.Count; i++) //循环原来,如果把不重复的行加入到新表中,如果重复,则不处理。
                {
                    DataRow dr = dtClass.Rows[i];
                    if (!al.Contains(dr["class"]))
                    {
                        tempTable.ImportRow(dr);
                        al.Add(dr["class"]);
                    }
                }
                return tempTable; //返回删除后的DataTable
            }
      

  3.   

    你为什么不在查询的时候就去掉重复的行呢?
    例如:select distinct(列名) from 表名
      

  4.   


    删除表中的重复数据??那不如用distinct查出数据到dataset,然后删除表原有记录,再把dataset里的数据插入表.
      

  5.   

    偶绑定的不是数据库的值 。是XML
      

  6.   

    除非你的数据不是来自于数据库。如果是的话,建议在 SQL 语句事先将重复数据过滤掉,毕竟这呀那个的操作来得方便。如果数据的确是来自于数据库,而楼主是为了练习,也就另当别论了。
      

  7.   

    DataTable tempTable = dtClass.Clone(); 
    tempTable.Clear();
      

  8.   

    DataTable newTable = newTable.DefaultView.ToTable(true, "Category", "QuantityInStock");可以去除重复记录