私はデフォルトのテキスト値で何もない30のボタンを持っています。私は何をしたいのデータベースからの注文データを取得している:ここでは.netのデータベースからボタンにテキスト値を割り当てますか?
は、データベース形式である:
今私はMSのためにOLEDBを使用して、特定の名前を選択するために、IDやカテゴリをつかむための関数を作成しました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
ACCESSデータベース。
button1.Show();
...
...
button30.Show();
button1.Text = getItem(1, a);
button2.Text = getItem(2, a);
..
...
...
button30.text = getItem(30, a);
再び変更されたカテゴリを変更するには、別のボタンがあります:フォームの負荷が、私は以下の機能を割り当てた時はいつでも今
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.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();
これはうまく動作しますが、問題はそれです遅すぎる。 フォームがロードされるたびに、すべてのデータをボタンに入力するのに時間がかかります。また、ボタンをクリックしてカテゴリを変更すると、そこにも発生します。
これを配列などで行う方法はありますか? 上記のコードでは、データベースに複数回アクセスする必要があり、処理が遅くなります。
もう1つの問題は、データベーステーブルに18個または30個未満のアイテムがある場合、既定の値で既定のボタンが表示されることです。私はbuttonx.Hideを(使用して、それを克服する上記のコードで
)xは任意の値を有していないすべての値のためである..
これらの全ては、手作業、必要な質量coddingあります。
私はこの問題を克服するための良い方法を知っていただければ幸いです。
データベースにアクセスして30個のボタンを埋めるのではなく、大きなアクセス権を1つしか持たずデータからボタンを埋めることができませんでした。私はそれがあなたに大きなブーストを与えるはずだと思います。 –
ところで、 "C#.Net"のようなものはありません。それはちょうど "C#"です。 –