如何保持SqlConnection始终处于打开状态

6

如何在我的.Net应用程序执行期间始终保持SqlConnection(或使用另一个组件)处于打开状态(已连接)?

我需要这样做是因为我的应用程序需要使用此命令进行检测。

 exec sp_who2 

我的应用有多少个实例连接到我的数据库,以限制访问(许可证控制)。
示例:
A)我的应用程序从位置1执行
  1. 使用exec sp_who2检查连接到sql服务器的我的应用程序数量
  2. 如果我的应用程序数 < MaxLicencesConnected,则启动我的应用程序并打开一个SQL连接
B)我的应用程序从位置2执行
  1. 使用exec sp_who2检查连接到sql服务器的我的应用程序数量
  2. 如果我的应用程序数 >= MaxLicencesConnected,则关闭我的应用程序
抱歉我的英文不好,谢谢提前帮忙。
4个回答

4

如果在程序启动时添加一条记录并在程序退出时删除它,这样做会更容易吧?始终保持与SQL Server的连接是非常昂贵的。

从技术上讲,有人可以删除记录并启动新实例,但显然,如果他们这样做,第一个实例将停止工作(假设它每隔一段时间检查自己的记录是否存在)。


2

1

使用连接池。在您的连接字符串中设置最大池大小最小池大小池化


0
也许你可以设置一个连接对象,打开它并将其存储在全局(静态)变量中。我相信,你还需要设置连接的超时时间,否则如果闲置时间过长,它将自动关闭。
坦率地说,我认为保持连接处于打开状态不是一个好主意,因为它们很昂贵。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接