как оптимизировать эту задачу? - PullRequest
0 голосов
/ 22 августа 2011

У меня есть четыре выпадающих списка, я хочу заполнить их одинаковыми данными из одной таблицы, но эта задача занимает много времени на устройстве карманного компьютера.Поэтому мне интересно, есть ли способ быстрее, чем этот:

private void autreform_Load(object sender, EventArgs e)
        {

            DataTable dtable = new DataTable();
            SqlDataAdapter adapter = new SqlDataAdapter("select designation, num_produit from STK_PRODUITS_GENERIQUE where num_famille in (select num_famille from  parametrage_vidange where produit='autres') ", mySqlConnection1);
            adapter.Fill(dtable);

            try
            {
                remplircombo(comboBox1, dtable);
                remplircombo(comboBox2, dtable);
                remplircombo(comboBox3, dtable);
                remplircombo(comboBox4, dtable);
            }
            catch (Exception excr) { MessageBox.Show(excr.Message); }
        }

 private void remplircombo(ComboBox combo, DataTable dtable )
        {
            combo.DataSource = new BindingSource(dtable, null);
            combo.DisplayMember = "designation";
            combo.ValueMember = "num_produit";
        }

Ответы [ 2 ]

0 голосов
/ 22 августа 2011

Обычно вам не следует добавлять много элементов в комбинированный список; Это медленно, и пользователям становится трудно выбрать правильный пункт.

Я предпочитаю использовать пользовательский элемент управления для удобного отображения моих данных.

Если это не существенное изменение, вы можете приостановить макет формы перед загрузкой элементов в выпадающий список:

try
{
this.SuspendLayout();
}
finally
{
this.ResumeLayout();
} 
0 голосов
/ 22 августа 2011

Нет, это приемлемо.Однако я бы переместил вашу логику запросов к БД в отдельный класс.

...