请问,有办法可以将DataSet数据再进行分组吗?
我查了一下只有一个DataTable中的Select方法,可是它只能筛选不能分组呀,
后来又想用DataView也没有什么发现@#$@#$@#......
12 个解决方案
#1
好像不行吧,因为你要分组的话,你要对哪项进行集合,这个必需得改sql吧
不行只能循环单个判断,然后计算。
不行只能循环单个判断,然后计算。
#2
我不知道 还望强人指点
#3
.net交流群(上海站)36840133
.net交流群(广州站)25367091
.net交流群(总站)20962976
.net交流群(广州站)25367091
.net交流群(总站)20962976
#4
单纯分组取数据,当然Select方法就可以了,如果分组计算可以用Compute方法
#5
我记得好像有个Filter的。
但是不记得是DataSet的还是DataGrid的功能了。
但是不记得是DataSet的还是DataGrid的功能了。
#6
DataView
#7
我所知道的DataTable没有类似的分组功能.
#8
对数据分组,如果没有合计的话,你可以考虑用排序来把相似的记录组到一起.
如果分组的同时还要合计,或像Sql语句那样,应该不可以,因为那样记录的条数会发生变化,在DataTable中不可能实现.
如果分组的同时还要合计,或像Sql语句那样,应该不可以,因为那样记录的条数会发生变化,在DataTable中不可能实现.
#9
DataView.rowFilter
#10
if (ds.Tables[0].Rows.Count != 0)
{
DataView dv = ds.Tables[0].DefaultView;
if (filt != "%")
{
dv.RowFilter = "Thing_AddL='" + filt + "'";
}
this.dgSearch.DataSource = dv;
this.dgSearch.DataBind();
}
{
DataView dv = ds.Tables[0].DefaultView;
if (filt != "%")
{
dv.RowFilter = "Thing_AddL='" + filt + "'";
}
this.dgSearch.DataSource = dv;
this.dgSearch.DataBind();
}
#11
基本上不可能了。
你可以用排序,循环来处理类似的功能
比如ds中有个Table.里面有3个字段,name,sex,age
如果你要按age分组.你可以先按age排序.然后做如下出来
string oldAge =dt.rows[0]["age"].toString();
string newAage="";
for(int i=0;i<dt.Row.Count;i++)
{
newAage=dt.rows[i]["age"].toString();
if(newAage!=oldAge)
{
//处理.
oldAge=newAage;
}
//同一组的操作.
}
你可以用排序,循环来处理类似的功能
比如ds中有个Table.里面有3个字段,name,sex,age
如果你要按age分组.你可以先按age排序.然后做如下出来
string oldAge =dt.rows[0]["age"].toString();
string newAage="";
for(int i=0;i<dt.Row.Count;i++)
{
newAage=dt.rows[i]["age"].toString();
if(newAage!=oldAge)
{
//处理.
oldAge=newAage;
}
//同一组的操作.
}
#12
哎。。我也有这个情况啊。。
真是没有办法的。。
网上找都找不到解决方案。。汗。。
真是没有办法的。。
网上找都找不到解决方案。。汗。。
#1
好像不行吧,因为你要分组的话,你要对哪项进行集合,这个必需得改sql吧
不行只能循环单个判断,然后计算。
不行只能循环单个判断,然后计算。
#2
我不知道 还望强人指点
#3
.net交流群(上海站)36840133
.net交流群(广州站)25367091
.net交流群(总站)20962976
.net交流群(广州站)25367091
.net交流群(总站)20962976
#4
单纯分组取数据,当然Select方法就可以了,如果分组计算可以用Compute方法
#5
我记得好像有个Filter的。
但是不记得是DataSet的还是DataGrid的功能了。
但是不记得是DataSet的还是DataGrid的功能了。
#6
DataView
#7
我所知道的DataTable没有类似的分组功能.
#8
对数据分组,如果没有合计的话,你可以考虑用排序来把相似的记录组到一起.
如果分组的同时还要合计,或像Sql语句那样,应该不可以,因为那样记录的条数会发生变化,在DataTable中不可能实现.
如果分组的同时还要合计,或像Sql语句那样,应该不可以,因为那样记录的条数会发生变化,在DataTable中不可能实现.
#9
DataView.rowFilter
#10
if (ds.Tables[0].Rows.Count != 0)
{
DataView dv = ds.Tables[0].DefaultView;
if (filt != "%")
{
dv.RowFilter = "Thing_AddL='" + filt + "'";
}
this.dgSearch.DataSource = dv;
this.dgSearch.DataBind();
}
{
DataView dv = ds.Tables[0].DefaultView;
if (filt != "%")
{
dv.RowFilter = "Thing_AddL='" + filt + "'";
}
this.dgSearch.DataSource = dv;
this.dgSearch.DataBind();
}
#11
基本上不可能了。
你可以用排序,循环来处理类似的功能
比如ds中有个Table.里面有3个字段,name,sex,age
如果你要按age分组.你可以先按age排序.然后做如下出来
string oldAge =dt.rows[0]["age"].toString();
string newAage="";
for(int i=0;i<dt.Row.Count;i++)
{
newAage=dt.rows[i]["age"].toString();
if(newAage!=oldAge)
{
//处理.
oldAge=newAage;
}
//同一组的操作.
}
你可以用排序,循环来处理类似的功能
比如ds中有个Table.里面有3个字段,name,sex,age
如果你要按age分组.你可以先按age排序.然后做如下出来
string oldAge =dt.rows[0]["age"].toString();
string newAage="";
for(int i=0;i<dt.Row.Count;i++)
{
newAage=dt.rows[i]["age"].toString();
if(newAage!=oldAge)
{
//处理.
oldAge=newAage;
}
//同一组的操作.
}
#12
哎。。我也有这个情况啊。。
真是没有办法的。。
网上找都找不到解决方案。。汗。。
真是没有办法的。。
网上找都找不到解决方案。。汗。。