我现在有这样一个Datatable结构parameterName  ,  Port, Leveaa                  1     A
aa                  1     A
bb                  2     A
bb                  2     A
上的结构是我从Excel读取后转换的存到一个DataTable中 然后显示到GridView里面 给用户  用户需要把里面像第一条和第二条
第三条和第四条 他们中重复的两行中其中一行中的参数名改了 然后才可以点保存按钮保存数据到数据库
如果其中还有重复则用颜色标识出来 要用户更改其中 parameterName Port  Leve必须唯一确定一行记录
不只到大家什么好的方法

解决方案 »

  1.   

    使用linq to dataset如何?using System.Linq;
    ------------
    var query=(from tt in DataTable.AsEnumerable() select tt).Distinct();
    DataView dv=query.AsDataView();
    //绑定dv到GrivView
     
      

  2.   

    在添加一列,保存这三列的和,然后知比较这一列就方便多了啊!
    parameterName  ,  Port, Leve ,flagaa                  1    A    aa1A
    aa                  1    A    aa1A
    bb                  2    A    bb2A
    bb                  2    A    bb2A只比较flag这列就方便多了!
      

  3.   

    DataTable加个列,用来标记是否重复,
    用DataView排序,然后循环,如果这一行的某向个字段值=上一行,将重复列做个标记,显示的时候检查这个标记,显示不同颜色.
      

  4.   

    这样不好
    parameterName  ,  Port, Leve ,flagaa                  1    A    aa1A
    aa                  1    A    aa1A
    bb2                 1    A    bb21A
    bb                  21   A    bb21A
    bb                  2    1A   bb21A这下可就惨了
      

  5.   

      DataTable dt = new DataTable();
                dt.Columns.Add("parameterName");
                dt.Columns.Add("Port");
                dt.Columns.Add("Leve");
                dt.Rows.Add("aa", "1", "A");
                dt.Rows.Add("aa", "1", "A");
                dt.Rows.Add("bb", "2", "A");
                dt.Rows.Add("bb", "2", "A");            ///这里开始处理.
                ///
                dt.Columns.Add("Flag");
                DataView dv = dt.DefaultView;
                dv.Sort   = "parameterName,Port,Leve";
                for(int i =1;i<dv.Count;i++)
                {
                    if (dv[i]["parameterName"].ToString() == dv[i - 1]["parameterName"].ToString())//我这里只比较一个字段,你可改成多个
                    {
                        dv[i].Row["Flag"] = "1";
                    }            }
      

  6.   

    绑定到GridView时,可以自动生成一列自增序号列,Visible设为True~~
      

  7.   

    C# code  DataTable dt = new DataTable();
                dt.Columns.Add("parameterName");
                dt.Columns.Add("Port");
                dt.Columns.Add("Leve");
                dt.Rows.Add("aa", "1", "A");
                dt.Rows.Add("aa", "1", "A");
                dt.Rows.Add("bb", "2", "A");
                dt.Rows.Add("bb", "2", "A");            ///这里开始处理.
                ///
                dt.Columns.Add("Flag");
                DataView dv = dt.DefaultView;
                dv.Sort   = "parameterName,Port,Leve";
                for(int i =1;i<dv.Count;i++)
                {
                    if (dv[i]["parameterName"].ToString() == dv[i - 1]["parameterName"].ToString())//我这里只比较一个字段,你可改成多个
                    {
                        dv[i].Row["Flag"] = "1";
                    }            }OK