6

如何在我的 .Net 应用程序执行期间始终保持 SqlConnection(或使用其他组件)打开(连接)?

我需要这个,因为我的应用程序需要使用这个命令来检测

 exec sp_who2 

我的应用程序有多少实例连接到我的数据库,以限制访问(许可证控制)。

例子

A)我的应用程序从location1执行

  1. 检查连接到 sql server 的应用程序数量exec sp_who2
  2. 如果我的应用程序数量 < MaxLicencesConnected然后启动我的应用程序并打开一个 sqlconnection

B)我的应用程序从location2执行

  1. 检查连接到 sql server 的应用程序数量exec sp_who2
  2. 如果我的应用程序数量 >= MaxLicencesConnected然后关闭我的应用程序

对不起我的英语不好。

提前致谢。

4

4 回答 4

3

简单地在程序启动时添加记录并在程序退出时将其删除的表不是更容易吗?一直保持与 SQL Server 的连接是非常昂贵的。

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

于 2010-03-16T03:33:50.920 回答
2

连接池使连接保持活动状态:

http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx

于 2010-03-16T03:48:45.757 回答
1

使用连接池。在连接字符串中设置Max Pool SizeMin Pool SizePooling 。

于 2010-03-16T07:22:11.727 回答
0

Myabe 你可以设置一个连接对象,打开它并存储在一个全局(静态)变量中。我相信,您还必须设置连接的超时时间,否则如果闲置它将自动关闭。

坦率地说,我认为保持连接打开不是一个好主意,因为它们很昂贵。

于 2010-03-16T03:34:18.880 回答