2013-05-30 200 views
0

我在C#中放置了一個WinForms實用程序,它允許管理員在我的工作環境中的計算機上查詢和執行操作(批量)。我已經開始創建幾個模擬項目,向我的上級展示。確定將數據存儲在內存或數據庫中

該實用程序顯示:在一個DataGridView計算機

  1. 列表(名稱,正常運行時間,操作系統,位置等)的動作/查詢
  2. 的列表,可以在選定的計算機
  3. 來執行

操作和查詢將需要更新計算機datagridview中的行及其結果。 用戶需要能夠對datagridview中的列進行排序,並根據計算機位置篩選行。

我的電腦的datagridview的填充如下: 的DataGridView =>的BindingSource =>數據集=>本地數據庫

當的Util是第一次運行,計算機列表從Active Directory組讀取和中插本地數據庫。 然後基於來自數據庫的查詢填充計算機的DataTable。 然後將BindingSource綁定到DataTable,並將datagridview綁定到BindingSource以顯示給用戶。

當在選定的計算機上運行Action時,結果將添加到Computers Datatable(它反映在Datagridview中)並且還提交給SQLCEDatabase。

當用戶從位置列表中選擇不同位置時,將運行SQL查詢以使用本地數據庫的結果重新填充數據表。

Util沒有要求保存收集到的任何數據,事實上,當Util第一次運行時,它將刪除本地數據庫中的所有記錄並重新開始。

我想我可能已經用我的設計過量了,並希望得到一些更好的方法把它放在一起的建議。我會更好地報廢本地數據庫並通過BindingList或其他類型的列表將所有數據保存在內存中嗎?這仍然會允許我過濾基於查詢的datagridview並允許排序嗎?

道歉,如果這篇文章是漫長而令人費解的,但我不知道如何以任何其他方式。

+0

考慮數據庫而不是內存的優點和缺點。 – noobob

回答

0

「當Util第一次運行時,它將刪除本地數據庫中的所有記錄並啓動新的」=>轉儲數據庫並將所有內容保存在內存中。否則,你會增加巨大的開銷,並得到任何有用的回報。

+0

謝謝丹尼爾,我將切換我的設計,並將其基於綁定列表。 –