日期:2014-05-20  浏览次数:21045 次

datatable.Compute("Count(Distinct(列名))","true")出错
网上查了下,说不支持distinct,如果不用distince如何达到同样的效果呢?

------解决方案--------------------
你可以通过后面的Filter添加计算的条件,但是Distinct是不支持的!
如果条件不好写,那写一个循环也未必不可
------解决方案--------------------
同样楼上...

确实不支持distinct...


------解决方案--------------------
datatable是个好东西...
------解决方案--------------------
循环吧
------解决方案--------------------
这样可以不?

ArrayList list = new ArrayList();
foreach (DataRow row in table.Rows )
{
if (!list.Contains(row[ "列名 "]))
{
list.Add(row[ "列名 "]);
}
}
//列数
int columnCount = list.Count;
------解决方案--------------------
你直接用sql取的时候,就把重复的项给排除不行吗?

dt.Compute中用不了 "distinct "...

或者自己写一个方法...

------解决方案--------------------
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;
}
------解决方案--------------------
呵呵,我也找了半天,终于找到办法了,其实有个方法就是:DataView.ToTable(bool distinct,string[] columnname )
------解决方案--------------------
good