C# 在TableAdapters之间共享SqlConnection

C# 在TableAdapters之间共享SqlConnection,c#,sql-server-2008-r2,.net-4.5,tableadapter,C#,Sql Server 2008 R2,.net 4.5,Tableadapter,我的表单调用多个TableAdapter对象,用相关行填充本地公共数据集,请参见下文 private void frm_TrialsFromOrder_Load(object sender, EventArgs e) { this.trialTableAdapter.FillBy(this.myDataSet.trialTable, this.trial_id); this.orderTableAdapter.FillBy(this.myDataSet.orderTable, t

我的表单调用多个TableAdapter对象,用相关行填充本地公共数据集,请参见下文

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探查器显示:

审核登录 SQL:批处理选择。。。来自trialTable。。。 审核注销 审核登录 SQL:批处理选择。。。从orderTable。。。 审核注销 如何配置多个TableAdapter对象以使用同一个SqlConnection?

您不想这样做。SqlConnection对象被构建为在using as最佳实践中创建、使用,然后被释放,因此using语句。不要共享连接对象。共享连接以确保其不昂贵的操作由服务器处理

Per:

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

请确保将连接字符串上的Pooling属性设置为true,以便启用池;否则,总的来说,这将达不到目的