У меня 30 кнопок без значения текста по умолчанию.То, что я хочу сделать, это получить упорядоченные данные из базы данных:
Вот формат базы данных:
ID value cat
1 Button name a
2 Another name a
3 something a
. . a
. . a
. . a
30 Last button a
1 Button name b
2 Another name b
3 something b
. . b
. . b
. . b
18 Last button b
Теперь я создал функцию для захвата идентификатора и категории, чтобы выбрать конкретное имяиспользуя OLEDB для базы данных MS ACCESS.
здесь есть функция:
private string getItem(int i, string a) {
//database connection
// database query and table slection where ID = i and cat = a
read the data in the selected column
return the string form of the column
}
Теперь, когда форма загружается, я назначаю следующую функцию:
button1.Show();
...
...
button30.Show();
button1.Text = getItem(1, a);
button2.Text = getItem(2, a);
..
...
...
button30.text = getItem(30, a);
сноваесть отдельная кнопка для изменения категории, которая изменит текстовое значение в кнопке:
button1.Text = getItem(1, b);
button2.Text = getItem(2, b);
.
.
.
button18.Text = getItem(18, b);
// because I have only 18 items I hide all the remaining buttons.
button19.Hide();
...
button30.Hide();
Она работает хорошо и легко, но проблема в том, что она слишком медленная.Всякий раз, когда форма загружается, требуется время, чтобы заполнить все данные для кнопок, а также когда я нажимаю кнопку, чтобы изменить категорию, это происходит и там.
Есть ли способ сделать это в массиве или что-то в этом роде?Приведенный выше код требует многократного доступа к базе данных, что приводит к медленной обработке.
Другая проблема заключается в том, что если в таблице базы данных есть только 18 или менее 30 элементов, то готовые кнопки будут видны со значениями по умолчанию..
В приведенном выше коде я преодолел это с помощью buttonx.Hide (), в то время как x для всех значений, которые не имеют никаких значений ..
Это все ручная работа и требуетсямассовая кодировка.
Буду признателен за хороший метод преодоления этой проблемы.