网上查了下,说不支持distinct,如果不用distince如何达到同样的效果呢?

解决方案 »

  1.   

    你可以通过后面的Filter添加计算的条件,但是Distinct是不支持的!
    如果条件不好写,那写一个循环也未必不可
      

  2.   

    同样楼上...确实不支持distinct...
      

  3.   

    这样可以不?ArrayList list = new ArrayList();
                foreach (DataRow row in table.Rows )
                {
                    if (!list.Contains(row["列名"]))
                    {
                        list.Add(row["列名"]);
                    }
                }
                //列数
                int columnCount = list.Count;
      

  4.   

    我是想用一条sql取出所有记录
    然后用dt.Compute("Count(Distinct(列名))","true")计算某列不重复的行数
    比如:
    lotCount = dt.Compute("Count(Distinct(LotNo))","true")
    dateCount = dt.Compute("Count(Distinct(DateCode))","true")
    reelCount = dt.Compute("Count(Distinct(ReelId))","true")
    ...
    或者有什么好的解决方法?
      

  5.   

    你直接用sql取的时候,就把重复的项给排除不行吗?dt.Compute中用不了"distinct"...或者自己写一个方法...
      

  6.   

    for example:private int DistinctColumnCount(DataTable table, string columnName)
            {
                ArrayList list = new ArrayList();
                foreach (DataRow row in table.Rows)
                {
                    string value = row[columnName].ToString();
                    if (!list.Contains(value))
                    {
                        list.Add(value);
                    }
                }
                return list.Count;
            }
      

  7.   

    呵呵,我也找了半天,终于找到办法了,其实有个方法就是:DataView.ToTable(bool distinct,string[] columnname )
      

  8.   

    不错,找了半天找到这个了,顶一下。多谢freehooke ^_^