作者KSmart (经济不景气,好景不常在)
看板C_Sharp
标题[问题] DataTable 及 EXCEL的问题
时间Wed Jan 1 23:08:04 2014
有个类似车籍资料的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
1F:→ m339606:有一个问题,为什麽不把资料丢进去SQL中来做新增修改删除? 01/01 23:26
2F:→ m339606:在需要用Excel的时候再汇出出来给使用者 01/01 23:26
3F:→ m339606:读写Excel的效率低下加上使用者一多还会造成锁定卡死 01/01 23:27
4F:→ m339606:之前读Excel的资料越多读取时间成指数增长 01/01 23:33
5F:→ KSmart:谢谢楼大,但就是没有DB = = 01/01 23:37
6F:→ m339606:考量到资料量的增长上,用档案式资料库也是种处理方式 01/01 23:39
7F:推 johnpage:excel =db 01/02 05:35
8F:→ johnpage:用sql存取excel,网路有很多范例 01/02 05:36
9F:→ KSmart:感谢m大分享,後来也有想过用SQLite,目前还不知道哪种 01/02 22:39
10F:→ KSmart:速度会比较快,不过这有衍伸出另一个小问题 01/02 22:40
11F:→ KSmart:假如程式放在Share资料夹,不同的两台电脑开启这支程式 01/02 22:41
12F:→ KSmart:那麽SQL的DB会不会lock? 01/02 22:41
13F:→ KSmart:john大,用SQL方式存取EXCEL会比较快吗?(还没试过这个) 01/02 22:43
14F:推 johnpage:ㄧ般sql是不会锁定的,不过你可以下达锁定的指令 01/02 22:45
15F:→ johnpage:Sal存取excel不会比较快,但是资料变大比较容易转mssql 01/02 22:48
16F:→ johnpage:或mysql. 01/02 22:48
17F:→ johnpage:像你用类别包装,以後维护会很累,所以不建议 01/02 22:49
18F:→ Litfal:db会不会锁定要看种类,例如单机常用的SQLCE就会锁。 01/03 18:24
19F:→ Litfal:我也建议用DB的概念去重新设计一下,否则开个云端excel还比 01/03 18:33
20F:→ Litfal:较简单... 01/03 18:33
21F:推 f1234518456:要这样搞不会用资料库喔... 01/05 23:13