asp.net中dataset删除重复数据的方法
DataTable 中的数据如下:
id key value
1 a aa
1 a aa
2 b bb
2 b bb
3 c cc
3 c cc
现在想要让DataTable变成这个样子的
id key value
1 a aa
2 b bb
3 c cc
代码
void DeleteSameRow(DataSet ds)
{
ArrayList indexList = new ArrayList();
// 找出待删除的行索引
for (int i = 0; i < ds.Tables[0].Rows.Count-1; i )
{
if (!IsContain(indexList, i))
{
for (int j = i 1; j < ds.Tables[0].Rows.Count; j )
{
if (ds.Tables[0].Rows[i][AccountInfo.Columns.AUName].ToString() == ds.Tables[0].Rows[j][AccountInfo.Columns.AUName].ToString())
{
indexList.Add(j);
}
}
}
}
// 根据待删除索引列表删除行
for (int i = indexList.Count - 1; i >= 0; i--)
{
int index = Convert.ToInt32(indexList[i]);
ds.Tables[0].Rows.RemoveAt(index);
}
}
bool IsContain(ArrayList indexList, int index)
{
for (int i = 0; i < indexList.Count; i )
{
int tempIndex = Convert.ToInt32(indexList[i]);
if (tempIndex == index)
{
return true;
}
}
return false;
}
再看一个实例
<blockquote>/// <summary>
/// 获取对固定列不重复的新DataTable
/// </summary>
/// <param name="dt">含有重复数据的DataTable</param>
/// <param name="colName">需要验证重复的列名</param>
/// <returns>新的DataTable,colName列不重复,表格式保持不变</returns>
private DataTable GetDistinctTable(DataTable dt,string colName)
{
DataView dv = dt.DefaultView;
DataTable dtCardNo = dv.ToTable(true, colName);
DataTable Pointdt = new DataTable();
Pointdt = dv.ToTable();
Pointdt.Clear();
for (int i = 0; i < dtCardNo.Rows.Count; i )
{
DataRow dr = dt.Select(colName "='" dtCardNo.Rows[i][0].ToString() "'")[0];
Pointdt.Rows.Add(dr.ItemArray);
}
return Pointdt;
}
您可能感兴趣的文章:
学习ADO.NET的DataAdapter对象
亲密接触ASP.Net(10)
asp.net中datareader 和 dataset 的区别详解
.net中DataTable DataSet DataView使用方法
ASP.NET缓存 Cache之数据缓存
亲密接触ASP.Net(8)
C#操作数据库总结(vs2005+sql2005)
asp.net(C#)解析Json类代码
asp.net中dataset删除重复数据的方法
DataSet DataTable DataReader DataAdapter详解