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

时间:2010-03-16 03:29:10

标签: c# winforms ado.net sqlconnection

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

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

进行检测
 exec sp_who2 

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

示例

A)我的应用程序是从 location1

执行的
  1. 使用exec sp_who2
  2. 检查连接到sql server的应用程序的数量
  3. 如果我的应用程序的数量< MaxLicencesConnected 然后启动我的应用程序并打开一个sqlconnection
  4. B)我的应用程序是从 location2

    执行的
    1. 使用exec sp_who2
    2. 检查连接到sql server的应用程序的数量
    3. 如果我的应用程序> = MaxLicencesConnected 的数量,则关闭我的应用程序
    4. 抱歉我的英语。

      提前感谢。

4 个答案:

答案 0 :(得分:3)

在程序启动时添加记录并在程序退出时将其删除会不会更容易?始终保持与SQL Server的连接是非常昂贵的。

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

Franly说,我不认为保持连接是一个好主意,因为它们很昂贵。