VB.NET Tips FlexGrid.NETを連結(バウンド)モードで使用するときのパフォーマンスの改善
GrapeCity社のFlexGrid.NETの連結(バウンド)モードを使用して大量にデータを表示するとき、5000件位のデータ連結だと、SetDataBinding時に処理時間が約2.3秒程度かかりました。
50000件処理するとき、単純計算で23秒。こうなると、使えません。
パフォーマンスを改善する策はないかと探したところ、
GrapeCity社のFlexGrid.NETの連結(バウンド)モードを使用して大量にデータを表示するとき、5000件位のデータ連結だと、SetDataBinding時に処理時間が約2.3秒程度かかりました。
50000件処理するとき、単純計算で23秒。こうなると、使えません。
パフォーマンスを改善する策はないかと探したところ、
FlexGrid.NETにDataBindされたDataTable内の任意行にDataRow(新規行)を追加する際、
「同時実行違反:UpdateCommand によって、処理予定の1レコードのうち0件が処理されました。」
このエラーが出て、新規行を追加できませんでした。
同時実行違反エラーというのが、DataAdapterに設定したUpdateCommandのWHERE句に指定した値で行が参照できないときなどに出力されるエラーです。
このときのコードが下記のものです。
Grapecity社のFlexGrid.NET4.0を使用して、アプリケーションソフトの開発を行っているのですが、Column名からの参照を毎回忘れて時間を浪費するので記載しておきます。
Dim Count as Integer = 1 Dim CTR As C1FlexGrid = FlexGridOpeMid With CTR .Cols(Count).Name = "hoge_id" End With
として、特定のColumnにColumn名を付けておきます。
このColumn名からColumnの列Indexを参照できれば、Columnが移動しても移動先の列Indexを参照することが可能になります。