2010-03-16 110 views
6

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

我需要这个,因为我的应用程序需要使用此commnad

exec sp_who2 

我的应用程序有多少个实例连接到MYDATABASE,限制使用权限(许可证控制)来检测。

例如

A)我的应用程序从LOCATION1

  1. 检查使用exec sp_who2
  2. 如果我的应用程序<数MaxLicencesConnected我的应用程序连接到SQL服务器的数量执行然后启动我的应用程序并打开一个sqlconnection

B)我的应用程序从LOCATION2

  1. 检查使用exec sp_who2
  2. 我的应用程序连接到SQL服务器的数目执行如果我的应用程序的数量> = MaxLicencesConnected然后关闭我的申请

对不起,我的英语。

在此先感谢。

回答

3

当程序启动时添加记录并在程序退出时将其删除时,简单地创建一个表格会更容易吗?始终保持与SQL Server的连接是非常昂贵的。

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

0

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

说起来,我不认为保持连接开放是一个好主意,因为它们很贵。

1

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