无法从DataTable中删除基于另一个DataTable的行
问题描述:
我有两个DataTable
s。无法从DataTable中删除基于另一个DataTable的行
distinct
:
+-------+-------+
| host | count |
+-------+-------+
| comp1 | 2 |
+-------+-------+
| comp2 | 3 |
+-------+-------+
| comp3 | 2 |
+-------+-------+
t
:
+----+-------+
| id | host |
+----+-------+
| 1 | comp1 |
+----+-------+
| 2 | comp2 |
+----+-------+
| 3 | comp1 |
+----+-------+
| 4 | comp3 |
+----+-------+
| 5 | comp1 |
+----+-------+
| 6 | comp3 |
+----+-------+
我想从t
其中包含distinct
表小于3
在count
列中的计算机名称中删除所有行。代码:
for (int i = 0; i < distinct.Rows.Count; i++)
{
if (Convert.ToInt32(distinct.Rows[i][1]) < 3)
{
foreach (DataRow row in t.Select())
{
if (row[1].ToString() == distinct.Rows[i][0].ToString())
{
row.Delete();
}
}
}
}
但它什么也没做。如果我在上面的代码之前和之后比较t
的内容,它就是一样的。我在这里错过了什么?
不能删除行这样的。你需要'DataTable.Rows.RemoveAt(Index)'或'DataTable.Rows.Remove(Datarow)'在你的情况下用't.Rows.Remove(row);'替换'row.Delete();'' – Franck 2014-10-31 12:08:45
是的,你很棒。它正在这样工作。 – fishmong3r 2014-10-31 12:34:14