处理asp.net c# / SQL Server应用程序的并发问题

本文关键字:应用程序 并发 问题 Server SQL asp net 处理 | 更新日期: 2023-09-27 17:50:42

如何处理asp.net 4.5 web应用程序(VS2012和c#, SQL Server)的并发性问题

例如

:
我的场景是用户可能永远无法处理队列项。

  1. 用户A打开队列项(A),仔细查看
  2. 用户B打开队列项(a),不审阅
  3. 就进行处理
  4. 用户A决定处理(A),但它被锁定,因此跳转到项目(b)
  5. 用户C打开队列项(b),立即处理
  6. 用户A决定处理(b),但它再次被锁定
  7. 同样的事情永远发生在用户A上

这对于用户A来说并不理想,尽管这种可能性的百分比可能非常小

我在c#代码级和SQL Server存储过程级都使用事务。我还使用ADO.net与数据库进行通信

我的问题是:

    你认为创建事务可以解决并发问题吗?
  • 我猜ADO.net已经建立了并发预防到位?
  • 我需要做任何其他事情来防止并发问题,而不是创建事务和使用ADO.net?

处理asp.net c# / SQL Server应用程序的并发问题

简而言之:您可以使用称为时间戳列的传统方法来解决并发问题。

表的时间戳列可用于确定自上次读取表以来表行中的任何值是否发生了更改。本文介绍了一种在Microsoft SQL Server 2005中使用表的时间戳列进行乐观并发控制的方法。

要获得关于此方法的更详细的解释,请阅读

这篇文章
    如何在SQL Server 2005中使用表的时间戳列进行乐观并发控制。

除了,您还可以查看使用SQL时间戳实现乐观并发的逐步实现指南。