2011-10-27 10 views
0

データセットからデータグリッドをより速く埋める方法について質問したいと思います。私は大量のデータ(約8000行)を扱っています。私はC#を使用しています。ネット。私はコードの2つのバージョン(下)を持って、両方のデータの読み込みを完了するために約1分かかった。データセットからDataGridを書き込む

// First Code 
DataSet objDataSet = new DataSet(); 
objDataSet = objMemberShip.mtdMemberViewBy(strGlobalUserID, 0, "", ref intErrNo); 
datagrid1.DataSource = objDataSet.Tables[0]; 

// Second Code 
objDataSet = objMemberShip.mtdMemberViewBy(strGlobalUserID, 0, "", ref intErrNo); 

datagrid1.Rows.Clear(); 
for (int intCount = 0; intCount <= objDataSet.Tables[0].Rows.Count - 1; intCount++) 
{ 
    string[] strRow = new string[] { objDataSet.Tables[0].Rows[intCount] ["trTranId"].ToString(), objDataSet.Tables[0].Rows[intCount]["strCEMCode"].ToString(), 
            objDataSet.Tables[0].Rows[intCount]["strName"].ToString(), objDataSet.Tables[0].Rows[intCount]["strAddress"].ToString(), 
            objDataSet.Tables[0].Rows[intCount]["strTestCenterId"].ToString(), objDataSet.Tables[0].Rows[intCount]["TCr_Name"].ToString(), 
            objDataSet.Tables[0].Rows[intCount]["strMemberId"].ToString(), objDataSet.Tables[0].Rows[intCount]["TCr_GL_Code"].ToString()}; 
      datagrid1.Rows.Add(strRow); 

} 
+0

WinFormsまたはWPFを使用していますか?グリッドビューでグループ化が有効になっていますか? – Fischermaen

+0

私はWinFormsを使用しています – marai

+0

両方とも同じ時間がかかる場合、最初のものと一緒に行く。私は別の選択肢があるとは思わない。 – Icarus

答えて

1

最初のアプローチはうまくいくはずです。私はMSがデータバインディングで適切に処理していると思います。データの読み込みやグリッドへのバインディングの遅延はありますか?あまりにも多くの行がある場合は、一度に何千もの行を表示する意味がないので、ページする必要があります。

+0

お返事ありがとうございます。 – marai

0

そして、最も時間がかかる行を特定します。これはおそらく、 は、この行することができます -

objDataSet = objMemberShip.mtdMemberViewBy(intErrNo REF strGlobalUserID、0、 ""、);

データベースでプロシージャを呼び出す可能性のあるサービスコールである可能性があります。遅延は手続きレベルでも可能です。

+0

ご回答ありがとうございます。 – marai

関連する問題