アプリケーションで SQL データベースからのデータを表示する際にパフォーマンスの問題があります。問題は、表示する必要があるパラメーターが多数あることです (顧客の個人データ、現在の統計など)。
これまでのところ、 SqlCommand.ExecuteScalar
(単一のパラメーターの場合) または(複数のパラメーターの場合 -データベースから必要なデータを取得するクエリDataTable.Rows[].ItemArray.GetValue()
の DataTable に入力します) のいずれかを使用し、それらの値を適切なコントロールに割り当てました。SqlDataAdapter
コマンドが SqlCommand タイプであると仮定します。
単一パラメータの場合
command.CommandText = "SELECT Parameter1 FROM MyTable WHERE Condition = Value";
textBox1.Text = command.ExecuteScalar().ToString();
複数のパラメーターの場合 (SDA は SqlDataAdapter です):
command.CommandText="SELECT Parameter1 - ParameterN FROM MyTable WHERE Condition = Value";
SDA.SelectCommand = command;
SDA.Fill(MyDataTable);
textBox1.Text = MyDataTable.Rows[0].ItemArray.GetValue(0).ToString();
comboBox1.Text = MyDataTable.Rows[0].ItemArray.GetValue(1).ToString();
/*
I repeat similar lines of code for each parameter and display it in the appropriate control.
*/
このアプローチは正しく機能しますが、多数のパラメーター (20 以上) がある場合、動作が非常に遅くなります。
これらの量のデータを表示するより効率的な方法はありますか?また、どのように実装しますか?
ありがとうございました