gpt4 book ai didi

sql - 我如何知道何时根据 C# 列表插入、删除或更新?

转载 作者:行者123 更新时间:2023-12-02 02:31:34 24 4
gpt4 key购买 nike

假设我有三个表“Person”、“Area”和“Person_Area”。每个人可以在多个领域工作,每个领域可以有很多人。 “person_Area”是一个桥表,包含person_id和area_id

在我的代码中,我有两个位于个人表单上的 asp 列表框。列表框一包含所有可用区域,列表框二可以根据用户选择填充列表框一中的区域。进入列表框二的区域是一个人所在的区域。

这一切都很好也很容易,但是当我决定保存到我的数据库时,我不确定如何插入、更新、删除“person_Area”表。我不想为某个人重新插入一个区域,如果它已经在表中,并且如果用户从列表框二中删除一个区域,当我发回服务器时,代码如何知道删除它?

只删除“Person_Area”表中特定人员的所有记录,然后重新添加所有当前用户选择是否合理?或者有更好的选择吗?我很难过。

最佳答案

没有理由删除并重新插入。当您甚至不确定这些行中的任何一行是否已更改时,工作量很大。

在我看来,有两个合理的选择:

  1. 跟踪 UI 的“更改”(添加一个区域、删除一个区域),然后对数据库执行相同的操作(删除行、添加行)。 (你必须考虑到有人添加一个区域,然后在点击“保存”之前将其删除,反之亦然。只需取消你的内部标志,不要先插入再删除)

  2. 只需按某种逻辑顺序查询该用户的 person_area 表(与列表框的排序方式相同)。然后逐行遍历记录集中的行和列表框。如果数据库中有一行不在列表框中,则执行 DELETE。如果列表框有一个不在数据库中的条目,请执行插入。

第二种方法对我来说非常直截了当,可能是我会采用的第一种方法。

关于sql - 我如何知道何时根据 C# 列表插入、删除或更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com