2016-05-27 1 views
1

У меня есть пара comboboxes в моем проекте. И их содержание сильно меняется. Поэтому я поместил их содержимое в свою базу данных. Теперь я написал код, как показано ниже, для получения их данных, но мне интересно, работает ли это «работа» как мой подход или вообще не имеет значения? Мой главный вопрос: это здоровый способ использования таких объектов?C# последовательные с использованием утверждений

DataTable results; 
using (results = myDataInteractionClass.SelectDB()) 
{ 
    // fill table objects to combobox 
} 

using (results = myDataInteractionClass.SelectAnotherDB()) 
{ 
    // fill this new table's objects to combobox 
} 

using (results = myDataInteractionClass.SelectThirdDB()) 
{ 
    // so goes on like this. 
} 

ответ

5

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

Одно предложение, хотя: для предотвращения неправомерного использования dataTable между или после using, я хотел бы предложить, чтобы создать переменную внутри using:

using (/*so here*/ DataTable results = myDataInteractionClass.SelectDB()) 
{ 
    // fill table objects to combobox 
} 
+0

Спасибо за ответ и совет. Я предварительно определил данные, потому что я думаю, что «возможно, если я сначала использую одно определение datatable, я могу получить прибыль от области и производительности RAM стека устройства». Это не так необходимо, и читаемость важнее в этой ситуации? – mimozz

1

Как я предполагаю, что ваша единственная цель состоит в том, чтобы считывать значения из таблицы и заполните их в combobox, рассмотрите возможность использования DataReader Insted of DataTable в сравнении с DataTable. И да, предложение Патрика уместно. Обычно я использую var с использованием инструкции.

+0

О, хорошо. что имеет смысл делать прибыль, а не мой метод. Благодарю. – mimozz

+0

@mimozz обычно, если ответ решает вашу проблему или дает полезную информацию, вы повышаете ее, чтобы оценить усилия. –