gpt4 book ai didi

c# - 在 ASP.NET 中处理从多个 session 到数据库的多个插入

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:49 24 4
gpt4 key购买 nike

我有一个 asp.net 应用程序,它允许用户登录并保存不同时间段的约会。它是一个多用户应用程序,多个用户可以同时登录并预约。

我有一个存储过程,它将约会空档数据插入数据库,在选择空档后单击保存按钮时调用该数据库。

当 2 个或更多用户尝试同时在同一时段保存约会时,我遇到了问题。在这种情况下,我只想允许一个插入并向所有其他插入存储过程的调用返回一条错误消息。

重现步骤:

  1. 用户 1 选择 1 个插槽。用户 2 选择与用户 1 相同的插槽。
  2. User1 和 User2 - 填充槽的数据
  3. 用户 1 和用户 2 同时点击保存按钮。

这应该会保存用户 1 的数据并在预约时段已预订时向用户 2 显示错误。

简而言之,我只想允许执行一次存储过程,并向所有其他插入返回错误。

最佳答案

乐观的方式

您可以在约会空档表中添加一个时间戳列,以在多个用户同时处理同一行时保持完整性。

一旦添加了时间戳,就需要将其获取到 UI,以便在更新时将其传回数据库。

在更新行时,如果时间戳相同,则继续事务,如果时间戳已更改,则需要回滚事务。

悲观的方式

当有人要预订时锁定Slot,这样其他人就无法打开它进行预订,唯一的问题是,当有人关闭应用程序而没有任何交易时,您需要通过一些后台逻辑解锁它.

有关这两种方法的更多详细信息,您可以查看此 article .

关于c# - 在 ASP.NET 中处理从多个 session 到数据库的多个插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973665/

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