我有一个.cs文件,其中我正在查看数据库和特定ID的站点。 如果站点上的ID不在db(还)中,则将其保存到db中。 很简单。
但是,如果ID在数据库中而不在页面上,那该怎么办?如何检查。如果它不在网站上,如何删除它。
我希望我足够清楚。
由于
塞巴斯蒂安
答案 0 :(得分:1)
如果我理解正确,您需要进行预检。因此,假设从FB墙中获得了墙的“主”ID,并且您将墙中的所有帖子与数据库中的该ID相关联,您首先获取墙上的所有帖子ID并检查您的数据库。如果它们存在且您的数据库中有一个不再存在于墙上,则只需将其删除即可。然后继续定期插入。
说,你的所有数据都是这样的:
FBWall {
WallId 1,
Posts = Posts[4] {
Post { PostId = 1 },
Post { PostId = 2 },
Post { PostId = 4 },
Post { PostId = 5 }
}
}
DBWall {
WallId = 1,
Posts = Posts[4] {
Post { PostId = 1 },
Post { PostId = 2 },
Post { PostId = 3 },
Post { PostId = 4 }
}
}
在FBWall
你有4个帖子,其中包含ID 1,2,4,5;在DBWall
你有4个帖子,其中包含ID 1,2,3,4。区别在于FBWall
中的帖子3已消失,因此您需要将其从DBWall
中删除。同样在FBWall
中你现在有帖子5,它不在DBWall
中,所以你需要插入它。
现在我考虑一下,操作的顺序是无关紧要的。您可以先在数据库中插入新帖子,然后删除过时的帖子,反之亦然。最终结果是一样的。
希望这对你有所帮助。
答案 1 :(得分:1)
SQl Server 2008有一个MERGE语句,我建议你看一下,你可以在一个语句中删除不良记录并更新现有和插入新的。它太酷了。在联机丛书中嘲笑它