在TableAdapters之间共享SqlConnection
本文关键字:SqlConnection 共享 之间 TableAdapters | 更新日期: 2023-09-27 17:59:44
我的表单调用多个TableAdapter
对象来用相关行填充本地的公共DataSet
(请参见下文)。
private void frm_TrialsFromOrder_Load(object sender, EventArgs e)
{
this.trialTableAdapter.FillBy(this.myDataSet.trialTable, this.trial_id);
this.orderTableAdapter.FillBy(this.myDataSet.orderTable, this.order_id);
}
执行程序时,SQL Server Profiler显示:
- 审核登录
- SQL:Batch(SELECT…FROM trialTable…)
- 审核注销
- 审核登录
- SQL:Batch(SELECT…FROM orderTable…)
- 审核注销
如何将多个TableAdapter
对象配置为使用同一个SqlConnection
?
您不想这样做。SqlConnection
对象是在using
中创建的,作为最佳实践,它被使用,然后被处理(因此using
语句)。不要共享连接对象。池化连接以确保成本不高的操作由服务器处理。
根据MSDN:
为了确保连接始终是关闭的,请打开using块内部的连接,如下面的代码片段所示。这样做可以确保在代码退出块时自动关闭连接。
请确保将连接字符串上的Pooling
属性设置为true
,以便启用池;否则(总的来说)这将违背目的。