【问题标题】:Constant connection between C# Winform and SQL ServerC# Winform 和 SQL Server 之间的持续连接
【发布时间】:2018-01-24 17:16:01
【问题描述】:

是否可以创建一个只要 WinForm 应用程序打开就保持打开的连接? 目前,我在表单类中声明了一个公共连接字符串,然后在每个私有 void 中启动一个新连接。我希望有一种方法可以在加载后和关闭应用程序之前打开和关闭连接一次?

【问题讨论】:

  • 声明一个私有 System.Data.SQLClient.SqlConnection 对象作为表单的一部分,实例化它并在表单加载事件中打开它,在关闭表单时关闭连接。我认为这是一个糟糕的设计,因为如果您的项目在关闭数据库连接之前崩溃会发生什么。
  • 为什么?这是一个非常糟糕的主意。您希望在使用完毕后立即关闭并处理您的连接。如果您让连接保持打开状态,您将减少连接池。
  • 这听起来是个糟糕的主意。
  • 查询后关闭连接。 .net 框架中的连接池处理连接并在需要时重用它,检查此sql-server-connection-pooling
  • 我希望不必每次都打开和关闭连接,但显然应该这样做。是否可以调用打开和关闭连接的函数?

标签: c# sql-server winforms connection


【解决方案1】:

当然,您可以轻松做到这一点。只需在您的表单中创建一个SqlConnection 变量并在您的Load 事件中初始化它。请务必在表单卸载时将其关闭。

但是,大多数数据库可以有多个客户端。如果他们开始像这样保持数据库打开,在最好的情况下,你可能会开始有糟糕的表现。在最坏的情况下,当您的程序运行时,其他请求将被完全阻止。如果您的应用程序有多个实例,那么这显然是一个主要问题。

由于这些原因,几乎没有人按照您的要求去做。我强烈建议你在做之前确保你了解所有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多