作者don750421 (1+1≠2)
看板C_Sharp
标题[问题] 指定几行的某个栏位塞入某值...
时间Sat Aug 29 08:22:46 2015
这个标题可能很难形容我的问题...
我使用一个例子说明...
固定时间会去某个资料夹读取文字档(*.TXT)
可能会有一个至数个...但是内容都大概长以下这样...
为了说明方便,所以前面增加 xx| 表示行数,麻烦忽略前三码
01|S124452984 <--固定>=10码
02|A123408743
03|B342423424
04|Kaohsiung <--小於10码定义为地区
05|G324234503
06|Tainan
07|E342542543
08|O325405453
09|R324329842
10|Taitung
11|Taitung
12|S324325325
13|Q308956456
14|Y324234234
15|W453534534
因为需要把以上的资料存入DB,所以原本的想法是....
每一行读取,若>=10码,就先塞入一个List<string> Temp
若读到<10码的则内定为地区....
此时就使用一个回圈将此些List 塞入DataTable 并将地区栏位塞入为此行
由以上的资料就得知,
01.02.03 行都属於Kashsiung
05 行属於Tainan
07.08.09 行都属於Taitung (但是在第10行时,已经将List存入DB,所以11行清空,SKIP)
12.13.14.15 行因为後面未有<10码的地区,所以判定为Fail。
并将Fail的资料记录在另一个DataTable....
後来,有想到应该可以只用一个DataTable纪录...
就变得每次读取到>=10的就直接塞DataTable。
但是,如果遇到<10的,就不知道要怎麽去塞回DataTable的地区的栏位...
for或foreach一定可以塞入...
但是,想问问有没有其他快速的方式...?
例如,可以指定DataTable Row0~Row3 的 地区栏位 等於 Kaohsiung ...之类的方式...
或许可以透过LINQ or Lambda ?
请各位前辈赐教..谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.237.192.219
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1440807771.A.76B.html
1F:→ Litfal: 其实你上半部的方法比较好,不用直接塞到资料库里 08/30 00:43
2F:→ Litfal: 除非你的数据非常非常大 08/30 00:43
3F:→ Litfal: 上半部的方式,在记忆体中做地区与ID配对,最後写入资料库 08/30 00:45
4F:推 Litfal: 下半部你先将ID写入资料库,後来再更新地区资料,无论怎麽 08/30 00:48
5F:→ Litfal: 实作,都会至少多一次资料库操作 08/30 00:49