日期:2014-05-18  浏览次数:20782 次

过滤重复记录的问题 在线等~
我想过滤掉一个Table里‘角色ID’字段的重复记录;目的就是在GRIDVIEW上重复的只显示其中一条。我是要求在前台处理,大家帮忙写个算法啊   谢谢!

------解决方案--------------------
这个还是在数据库里用 sql 比较好做。

前台可以用循环把记录复制到新的 datatable ,

foreach( row in 原来的表 )
{
if (row.角色id 不在新表中)
{
将 row 复制到新表
}
}

------解决方案--------------------
public void fun()
{
foreach(datarow row in table.rows )
{
string recard=row[ "id "].tostring();
int row_indexof=row.index;
foreach(datarow r in table.rows )
{
if (r[ "id "].tostring==reacrd && r.index!=row_indexof)
{
table.rows.remove(r);//这句可能不对,反正就是删掉行
}
}
}
}

------解决方案--------------------
把他读到dataset中
datatable dt=dataset.tables(0)
DataView dv = new DataView(dt);
dv.RowFilter = "distinct 角色ID "
------解决方案--------------------
select distinct id,name,sex,age fome table
------解决方案--------------------
select 角色ID from table group by 角色ID having count(*) <2
------解决方案--------------------
在SQL语句中就能实现
distinct 去掉重复数据
select distinct id fome table
------解决方案--------------------
RowFilter既可
------解决方案--------------------
for (int i = 0; i < this.DataGrid.RowCount; i++)
{
for (int j = i + 1; j < this.DataGrid.RowCount; j++)
{
if (this.DataGrid.Rows[i].Colunms[ "角色ID "].Value.ToString() == this.DataGrid.Rows[j].Colunms[ "角色ID "].Value.ToString())
{
this.DataGrid.Rows[j].Visible = false;
}
}
}
我做的时候是this.DataGrid.Rows[i].Cells[3].Value.ToString(),表.行[].单元格[].Value.ToString()