2014-04-23 7 views
1

Моя форма вызывает несколько объектов TableAdapter, чтобы заполнить локальный, общий DataSet с соответствующими строками (см. Ниже).Поделиться SqlConnection между TableAdapters

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: Batch (SELECT ... FROM trialTable ...)
  3. Аудит Logoff
  4. Аудит Вход в систему
  5. SQL: Пакет (SELECT ... FROM orderTable ...)
  6. Au dit Выход из системы

Как настроить несколько объектов TableAdapter, чтобы использовать те же самые SqlConnection?

ответ

2

Вы не хотите. Объект SqlConnection строится для создания, внутри using в качестве лучшей практики, используемой, а затем удаленной (следовательно, оператором using). Не используйте объекты подключения. Операция объединения соединений для обеспечения того, что это не дорого, обрабатывается сервером.

Пер MSDN:

Для того, чтобы гарантировать, что соединения всегда закрыты, открыть соединение внутри с помощью блока, как показано в следующем фрагменте кода. Это гарантирует, что соединение автоматически закрывается, когда код выходит из блока.

ли убедитесь, что вы устанавливаете Pooling свойство на строку подключения к true так, что объединение включена; что в противном случае победит цель иначе.

 Смежные вопросы

  • Нет связанных вопросов^_^