我有一个包含两个表的数据集,这些表之间有一个关系:
DataColumn dc1;
DataColumn dc2;
dc1 = q.Tables[0].Columns["dateFrom"];
dc2 = q.Tables[1].Columns["dateFrom"];
DataRelation dr = new DataRelation("tracker", dc1, dc2, false);
现在我想从第一个表中删除第二个表中没有数据的所有行。我怎么能这样做?
答案 0 :(得分:1)
未经测试,但您可以从下面得到一个想法(您甚至可能不需要设置关系)
var results = from table1 in q.Tables[0].AsEnumerable()
join table2 in q.Tables[1].AsEnumerable() on table1["dateFrom"] equals table2["dateFrom"]
select new {
dateFrom = table1["dateFrom"],
// anyother columns
};
希望这会有所帮助,祝你好运
克里希纳
答案 1 :(得分:1)
你为什么要这样做呢?在这种情况下,您可能会丢失重要数据(除非您知道这是不必要的内容)。 我假设如果父表中有数据,那么它必须是因为原因而添加的,或者代码中可能存在问题。看一下,尽量避免弄脏数据。
关于你的问题,我会循环访问主要记录并检查是否有任何父记录。同时比较并确保可以删除数据。
希望它有所帮助。