![通过瘦客户端的单一应用程序和多个用户](https://linux22.com/image/590788/%E9%80%9A%E8%BF%87%E7%98%A6%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E5%8D%95%E4%B8%80%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%E5%A4%9A%E4%B8%AA%E7%94%A8%E6%88%B7.png)
我有一个用 C# winforms 构建的应用程序。在后端我使用的是 SQLSERVER 2008 Express。该应用程序通过瘦客户端远程使用。
我的问题是,当一个用户正在使用我的软件时,第二个用户尝试打开该软件并尝试对数据库进行任何操作,数据库拒绝连接。只有当第一个用户关闭应用程序时,第二个用户才能操作数据库查询。
答案1
自 2000 年以来,SQLExpress 版本可以处理多个并发连接,因此应该可以工作,尽管存在一些限制,例如可用 RAM,如此处所述所以回答。
是否有可能达到限制,从而导致数据库拒绝任何进一步的连接?
当然,您必须意识到,两个用户不能同时编辑完全相同的表或至少表的一部分(取决于确切的操作:读取还是更新)。因此,如果表/记录上的锁已打开,则第二个用户必须等到这些锁被移除后才能编辑数据库记录。但这些锁只能存在很短的时间。