ahshow的专栏

.net开发

过滤DataTable的Rows的重复值

 

// 方法1
string sFormater = "{0}, {1}";
string sKeys = null;
string sPrevKeys = null;
// Key项目排序
DataRow[] rows = table.Select("""Key0, Key1");
foreach (DataRow row in rows)
{
sKeys 
= string.Format(sFormater, row["Key0"].ToString(), row["Key1"].ToString());
if (!sKeys.Equals(sPrevKeys))
{
tagetTable.ImportRow(row);
}

sPrevKeys 
= sKeys;
}


 
// 方法2
string sSelectFormater = "{0}, {1}";
foreach (DataRow row in table.Rows)
{
if (tagetTable.Select(string.Format(sSelectFormater, "Key0""Key1")).Length == 0)
{
tagetTable.ImportRow(row);
}

}


table 
= tagetTable;

// 方法3
string sFormater = "{0}, {1}";
DataRow row;
string sSelectFormater = "Key0 = {0}, Key1 = {1}";
for (int i = 0; i < table.Rows.Count; i++)
{
if (table.Select(string.Format(sSelectFormater, row["Key0"].ToString(), row["Key1"].ToString())).Length > 1)
{
table.Rows.Remove(row);
i
--;
}

}


// 方法3少一行
...
row 
= table.Rows[i];
...

// 方法4
DataView view = table.DefaultView;
DataTable tagetTable
= view.ToTable(true"column1""column2", ...);

方法4是最简单的方法,感觉很聪明的使用了dataview的toTable方法。

 

 

 

阅读更多
文章标签: string null table
个人分类: .net Form ASP.NET C#
上一篇ASP.NET面试题 (含答案)
下一篇ORACLE 中ROWNUM用法总结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭