У меня есть 30 кнопок с ничем в текстовом значении по умолчанию. Что я хочу сделать, это получить заказанные данные из базы данных:назначьте текстовое значение кнопкам из базы данных в .net?
Вот формат базы данных:
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
Теперь я создал функцию, чтобы захватить ID и категорию, чтобы выбрать конкретное имя с помощью 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(), а х для всех значений, которые не имеют каких-либо значений ..
Это все ручная работа и необходимая масса codding.
Буду признателен за полезный способ преодоления этой проблемы.
Вместо того, чтобы иметь 30 индивидуальных обращений к базе данных, чтобы заполнить 30 кнопок, вы не могли бы просто иметь один большой доступ и заполнять кнопки из данных. Я думаю, это должно дать вам большой толчок. –
Кстати, нет такой вещи, как «C# .Net». Это просто «C#». –