Datatable中有两个字段 a ,b
   数据记录如下:
            a                     b
            56路                   1
            18路                   3
            21路                   6
            56路                   7
            21路                   9 
我想写个c#程序把 a字段中相同的给去掉,如两个56路去掉一个。我是c#菜鸟

解决方案 »

  1.   

    http://www.w3school.com.cn/sql/sql_distinct.asp
    在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。
      

  2.   

    DISTINCT 是在SQL查询的时候去
    楼主问的是 要在datetable中 对象中去吧关注
      

  3.   

    对!我要的是在datatable对象去重!
      

  4.   

    还有sql中distinct对我说的情况是无效的!
      

  5.   

    谢谢各位!我的问题解决了!我用的是sql语句,是找sql高手重新写的语句没有用到distinct
      

  6.   

    using System.Text;
    StringBuilder sb = new StringBuilder();
    for(int i=dt.Rows.Count-1;i>=0;i--)
    {
        //判断是否包含
        if(sb.ToString().Contains(dt.Rows[i]["a"].ToString()))
        {
             dt.Rows.RemoveAt(i);//移除该行
        }
        else
        {
              //将该行的a字段的值加到sb
              sb.Append(dt.Rows[i]["a"].ToString());
    );
        }
    }以上代码是手打的,错误难免.希望对lz有帮助
      

  7.   

    是啊,用SQL语句的distinct去剔除某列中出现的重复值,不是更方便吗?我还以为要用C#程序呢杯具了
      

  8.   


     DataTable dt = new DataTable();
                for(int i=0;i<dt.Rows.Count-1;i++)
                    for(int j=0;j<dt.Rows.Count;j++)
                    {
                        if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString())
                        {
                            dt.Rows[j].Delete();
                            dt.AcceptChanges();
                        }
                    }
      

  9.   

    用sql中distinct解决不了我的问题,我找人重新写的sql语句没有用到distinct。我正好需要咋c#中解决的办法呢,就是为了学习一下!谢谢了,研究一下你的代码,呵呵!
      

  10.   

    public static  void  datatablel() { 
            
               DataTable   dt   =   new   DataTable();                 
                
                dt.Columns.Add( "CorpID ",   typeof(int));                
                dt.Rows.Add(1);                 
                dt.Rows.Add(2);                 
                dt.Rows.Add(3);                
                dt.Rows.Add(3);                 
                dt.Rows.Add(2);
             
                for (int i = 0; i < dt.Rows.Count - 1; i++)
                    for (int j = 0; j < dt.Rows.Count; j++)
                    {
                        if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString())
                        {
                            dt.Rows[j].Delete();
                            dt.AcceptChanges();
                        }
                    }            Console.WriteLine(dt);
                Console.ReadKey();
            
            }
    这是我写代码,上面那位美女,怎么样才能把datatable中的值给显示到控制台呢?
      

  11.   


     DataTable dt = new DataTable();
                for(int i=0;i<dt.Rows.Count;i++)
                    for(int j=0;j<dt.Columns.Count;j++)
                    {
                        Console.WriteLine(dt.Rows[i][j]);
                    }
      

  12.   

     public static  void  datatablel() {
            DataTable   dt   =   new   DataTable();                 
                dt.Columns.Add( "CorpID ",typeof(int));                
                dt.Rows.Add(1);                 
                dt.Rows.Add(2);                 
                dt.Rows.Add(3);                
                dt.Rows.Add(2);                 
                dt.Rows.Add(3);
                dt.Rows.Add(4);
                dt.Rows.Add(4);
                dt.Rows.Add(5);
                dt.Rows.Add(6);            for (int i = 0; i < dt.Rows.Count; i++)
                {  
                    for (int j =i + 1; j < dt.Rows.Count; j++)
                    {
                        if (dt.Rows[i][0].ToString() == dt.Rows[j][0].ToString())
                        {
                            Console.WriteLine(dt.Rows[j][0]); 
                            dt.Rows[j].Delete();
                            dt.AcceptChanges();
                               }
                        }
                     Console.WriteLine(dt.Rows[i][0]); 
                  }
                Console.ReadKey();
            }
    这是我改进11楼得代码,这个代码才是去重记录的,希望相互学习一下!