2011-03-27 43 views
0
Am using datagrid in my windows application, its getting more time to load datas(13 Seconds for 65000 items) 

是做結算器件的應用超市,我使用直接從小區搜索,列出重點在另一個網格項目下來。我知道keydown編輯事件不在微軟的datadridview,所以用於調用_EditingControlShowing
Datagrid的觀點得到多個O負載DATAS

 

private void gvSalesItem_EditingControlShowing(object sender,DataGridViewEditingControlShowingEventArgs e) 
     { 
      e.Control.KeyDown -= new KeyEventHandler(Control_KeyDown); 
     } 

private void Control_KeyDown(object sender, KeyEventArgs e) 
     { 

      if (e.KeyCode == Keys.F5) 
      { 

       LoadItems();//here is showing list of items in grid by data source 
      } 
     } 


我覺得的FlexGrid可以把它修復加載DATAS瞬間,如果不是這樣,請諮詢解決方案。

由於提前

DataGridView中得到更多的時間來加載DATAS(13秒65000項)

+0

你的綁定代碼/ sql查詢是什麼樣的? – jaywon 2011-03-27 03:21:58

+0

您是否也需要有能力讓用戶編輯數據,還是僅用於顯示? – jaywon 2011-03-27 03:25:29

+0

上午使用SQL,不想編輯當前網格視圖中的數據,想要從它的數據全部選擇項目 – Majid 2011-03-27 03:45:40

回答

0

如果您使用的是DataSetSqlDataSourceDataSourceMode屬性,或者如果你還沒有設置該屬性默認爲DataSet。這會將查詢返回到內存到DataSet對象,它能夠自動分頁,更新記錄等所有的記錄......

對於性能,如果您使用DataReader選項爲您DataSourceMode或手動綁定到SqlDataReader你會得到更好的性能加載您的數據。這方面的缺點是你必須編寫你自己的分頁/排序邏輯,並且可能必須改變你的查詢,只給你一次顯示的記錄,而不是從數據庫中選擇所有記錄。

這可能不是一個可行的解決方案,但它會提高加載數據的性能。

+0

謝謝,我正在使用LINQ – Majid 2011-03-27 05:55:12