有人可以告诉我我的错误吗?
我有两个表,合并成一个表。可以通过称为源的一列来区分它们。 (预期,找到)
我不会删除所有相等的行...
但是,如果同时删除了两行,则只会删除行i-1
...
for (int i = 0; i < tbl.Rows.Count; i++)
{
try
{
if (tbl.Rows[i].ItemArray.Contains(Constants.VALUE_SOURCE_FOUND) && tbl.Rows[i - 1].ItemArray.Contains(Constants.VALUE_SOURCE_EXPECTED))
{
var founded = (tbl.Rows[i].ItemArray).ToArray();
var expected = (tbl.Rows[i - 1].ItemArray).ToArray();
for (int u = 0; u < founded.Length; u++)
{
if (founded[u].ToString() == Constants.VALUE_SOURCE_FOUND)
{
founded = founded.Where(w => w != founded[u]).ToArray();
expected = expected.Where(w => w != expected[u]).ToArray();
}
}
if (founded.ToString() == expected.ToString())
{
tbl.Rows[i - 1].Delete();
tbl.AcceptChanges();
tbl.Rows[i].Delete();
tbl.AcceptChanges();
}
}
}
catch { }
}
}
return tbl;
答案 0 :(得分:0)
这行吗?
tbl.Rows[i].Delete();
tbl.AcceptChanges();
tbl.Rows[i-1].Delete();
tbl.AcceptChanges();
i = i - 2;
据我所知,仅删除要删除的行“标记”,您必须首先提交。在您进行第二次呼叫时,您将提交第一个呼叫,但是第二次删除将永远不会在数据表上执行。