在TableAdapters之间共享SqlConnection

时间:2014-04-23 15:31:08

标签: c# sql-server-2008-r2 .net-4.5 tableadapter

我的表单调用多个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显示:

  1. 审核登录
  2. SQL:批处理(SELECT ... FROM trialTable ...)
  3. 审核注销
  4. 审核登录
  5. SQL:批处理(SELECT ... FROM orderTable ...)
  6. 审核注销
  7. 如何配置多个TableAdapter个对象以使用相同的SqlConnection

1 个答案:

答案 0 :(得分:2)

你不想。 SqlConnection对象构建为在using内创建,作为最佳实践,使用,然后处理(因此using语句)。不共享连接对象。服务器处理池化连接以确保它不昂贵的操作。

MSDN

  

要确保始终关闭连接,请打开using块内部的连接,如以下代码片段所示。这样做可确保在代码退出块时自动关闭连接。

请确保您将连接字符串上的Pooling属性设置为true,以便启用池化;否则会破坏目的(一般而言)。