看板 C_Sharp 關於我們 聯絡資訊
有個類似車籍資料的excel檔,大致格式如下 品牌 | 1500cc | 1600cc| 1800cc | 2000cc| ------------------------------------------- Benz | | | | | ------------------------------------------- Totota| VIOS | | Altis | Camry | X軸的細項只是暫時列出幾項,實際可能有40~50筆。 Y軸的資料筆數目前不到10筆,但之後數量可能會到達30~50筆,甚至100筆也有可能。 我用了一個class 負責處理這些資料(using EPPLUS), 大致上需要的功能就是新增、刪除、修改 class CarData{ DataTable dsCarRawData = new DataTable("Car"); private void AddRawData(); private void EdisRawData(); private void DeleteRawData(); } 問題一:假設我有其他的Class(假設為MainForm)需要用到這個DataTable, 除了New 這個class來取得這些資料外,還有其他辦法嗎? 問題二:會讓使用者去"增加"這些資料,所以我有幾個做法: 1.將使用者新增的資料塞入DataTable,再把整個DataTable存成Excel(1次全塞) 2.將使用者新增的資料塞入DataTable,再把這筆紀錄塞到Excel。(1次塞1筆) 請問以上哪種方式比較好?或是有其他方式? 問題三:會讓使用者去"修改"這些資料,有以下做法 1.使用DataTable Find或Select去找到該筆資料並修改,在全部回存Excel 請問是否還有其他方式? 問題四:會讓使用者去"刪除"這些資料,有以下做法 1.使用DataTable Find去找該筆資料並刪除,並全部回存Excel 請問是否還有其他方式? 原本想說可以在Excel根據修改或刪除的部門做一筆一筆處理。 但是這樣不曉得會不會造成程式執行速度變慢? 還是各位前輩有其他建議呢?謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.173.185.36
m339606:有一個問題,為什麼不把資料丟進去SQL中來做新增修改刪除? 01/01 23:26
m339606:在需要用Excel的時候再匯出出來給使用者 01/01 23:26
m339606:讀寫Excel的效率低下加上使用者一多還會造成鎖定卡死 01/01 23:27
m339606:之前讀Excel的資料越多讀取時間成指數增長 01/01 23:33
KSmart:謝謝樓大,但就是沒有DB = = 01/01 23:37
m339606:考量到資料量的增長上,用檔案式資料庫也是種處理方式 01/01 23:39
johnpage:excel =db 01/02 05:35
johnpage:用sql存取excel,網路有很多範例 01/02 05:36
KSmart:感謝m大分享,後來也有想過用SQLite,目前還不知道哪種 01/02 22:39
KSmart:速度會比較快,不過這有衍伸出另一個小問題 01/02 22:40
KSmart:假如程式放在Share資料夾,不同的兩台電腦開啟這支程式 01/02 22:41
KSmart:那麼SQL的DB會不會lock? 01/02 22:41
KSmart:john大,用SQL方式存取EXCEL會比較快嗎?(還沒試過這個) 01/02 22:43
johnpage:ㄧ般sql是不會鎖定的,不過你可以下達鎖定的指令 01/02 22:45
johnpage:Sal存取excel不會比較快,但是資料變大比較容易轉mssql 01/02 22:48
johnpage:或mysql. 01/02 22:48
johnpage:像你用類別包裝,以後維護會很累,所以不建議 01/02 22:49
Litfal:db會不會鎖定要看種類,例如單機常用的SQLCE就會鎖。 01/03 18:24
Litfal:我也建議用DB的概念去重新設計一下,否則開個雲端excel還比 01/03 18:33
Litfal:較簡單... 01/03 18:33
f1234518456:要這樣搞不會用資料庫喔... 01/05 23:13