【发布时间】:2015-10-15 13:52:27
【问题描述】:
美好的一天, 我正在尝试制作一个需要连接到我们的数据库之一的 Windows 窗体应用程序。
我可以使用 System.Data.Odbc 对象连接到数据库。
我在本地函数中创建 OdbcConnection 对象、打开它、读取数据和关闭它都没有问题。但是我的表单需要发送许多查询,因此我想避免每次查询数据库时打开和关闭连接。
现在,我想采取的方法是将 OdbcConnection 对象声明为我的 Forms 类的一个字段,然后在 InitializeComponent() 方法中打开它,让数据库连接在 Form 期间打开,然后关闭仅在窗体关闭时才显示。
但这是一个问题,因为 Visual Studio 不想让我修改 InitializeComponent() 中的任何内容,所有内容都必须由表单设计代表我创建,因此我无法自己打开 OdbcConnection。
完成此任务的干净方法是什么?
谢谢
【问题讨论】:
-
如果你使用
Command和Connection对象最好自己打开和关闭连接。如果你使用DataAdapter,你可以让适配器控制连接状态。 -
定义一个特定的类来执行此操作,并应用/使用单例模式。在这里阅读更多:link
-
@Maarten 我认为共享连接不是一个好主意。如果需要,
ADO.Net将使用连接池来完成。但是如果 OP 想要表现得不是那么好,那么使用单例是一个不错的选择。 -
感谢您的回复。实际上我注意到只要我不修改 InitializeComponent() 方法,如果我在 Form1.Designer.cs 的末尾添加私有字段,Visual Studio 就不会抱怨,所以现在我有一个打开 OdbcConnection 实例的加载事件处理程序,以及关闭它的 FormClosing 事件处理程序。我的方法有什么陷阱吗?
-
不要碰
Form1.Designer.cs,而是给Form1.cs添加一个属性
标签: c# forms winforms visual-studio