datagridview の読み込みが非常に遅いです。どうすれば最適化できますか?
datagridview には 4 ~ 5,000 行あります。
いくつかのパラメーターで動的に datagridview を生成する必要があります (データベースからのデータ、列数)。
データベースのテーブル(ID、名前、連絡先)から垂直にこのようなデータグリッドビューを生成する必要があります..
列 1
id お
名前ご
連絡先
これで、 column1の横に任意の数の空の列が存在する可能性があります。
現在、私はこのアプローチに従っています。
- 最初にすべての空の列を追加します。
- 次に、for ループの反復ごとに 3 つの行を追加します (id、名前、連絡先)。
データベースからデータを取得し、それを として関数に渡してい
List <string[]>
ますGenerateRows
。private void GenerateColumns(int colLen) { dataGridViewGenerate.Rows.Clear(); dataGridViewGenerate.Columns.Clear(); DataGridViewColumn col0 = new DataGridViewTextBoxColumn(); col0.HeaderText = "Employee No. & Name"; dataGridViewGenerate.Columns.Add(col0); for (int i = 0; i < colLen; i++) { DataGridViewColumn col = new DataGridViewTextBoxColumn { HeaderText = (_sTime.AddDays(i)).Day.ToString(CultureInfo.InvariantCulture) + " " + (_sTime.AddDays(i)).ToString("ddd") }; dataGridViewGenerate.Columns.Add(col); } private void GenerateRows(List<string[]> empList) { int len = empList.Count; for (int a = 0; a < len; a++) { string[] arr = empList[a]; //row 1 var row1 = new DataGridViewRow(); row1.Cells.Add(new DataGridViewTextBoxCell { Value = arr[0] }); dataGridViewGenerate.Rows.Add(row1); //row 2 var row2 = new DataGridViewRow(); row2.Cells.Add(new DataGridViewTextBoxCell { Value = arr[1] }); dataGridViewGenerate.Rows.Add(row2); //row3 var row3 = new DataGridViewRow(); row3.Cells.Add(new DataGridViewTextBoxCell { Value = arr[2] }); dataGridViewGenerate.Rows.Add(row3); } }
テーブルを作成してデータを入力するSQLでプロシージャを作成することを考えていました。次に、データソースを datagridview に割り当てます。