查了很多资料,不是说在数据库查询时就distinct ,就是遍历循环判断是否已存在,直到找到这个方法,一切都解决了!
对 DataTable直接进行操作
DataTable dt=db.GetDt("select * from 表名"); //获得datatable
DataView dv = new DataView(dt); //虚拟视图
DataTable dt2 = dv.ToTable(true, "name","age","hobby");
这个时候 dt2就是去除了重复的行了
解释一下
dv.ToTable(true, "name,age,hobby");
第一个参数,true 去除重复,false 不去除
第二个参数,你需要显示的字段,是一个参数数组,如果数组中每个字段对应的值组成的记录与另一条记录重复则去重复
试过了,可以做到
我的例子:
DataTable dt = ds.Tables[0].DefaultView.ToTable(true, "TermClassId", "Term", "PId");
ds为数据集(DataSet)
ds.Tables[0] 为 数据表 (DataTable)
defaultview 为数据视图 (DataView)
dt 为去重后的数据表(DataTable)
查看结果:ds中数据为:
dt 中得到处理后的结果为: