[問題] 比較List<>和DataTable資料差異?
有一個資料庫定時會將資料拋出至某個TableA(因為此資料庫一般使用者無法存取)
拋出的時間尚在跟使用者確認(Maybe 1 小時一次)
如今,有個TableB會將TableA的部分欄位資料取回(可能會follow上述拋出的時間)
假設Table有A,B,C,D,E,F,G欄位(A為主鍵),由TableA取回的僅有A,B,C欄位
TableB的G欄位,會透過一個TXT文字檔塞入
文字檔格式
apple01 <--A主鍵
apple08 <--A主鍵
F08 <--G欄位
banana07 <--A主鍵
pc951dx <--A主鍵
C05 <--G欄位
以上述為例,
TableB如果有前兩行A主鍵的話,G欄位則為F08
TableB如果有第3.4行A主鍵,則G欄位為C05
因為TableA有可能會比文字檔先進TableB,文字檔也有機會比TableA先進TableB
那是不是只能在塞入每筆資料前,先對DB做Select在做insert或update?
問題一:如果文字檔的每個G欄位前面有30~50個A欄位,不就要做30~50次SELECT ?
目前的作法是,將讀到的每一行塞入List<>,且當我讀到G欄位時,
使用SELECT * from Table where A IN('','')去判斷Table是否有資料,
假設List有5筆,select回傳DataTable為0筆(代表TableB無資料),
則使用Insert塞入TableB
問題二:如果select後回傳只有3筆,實際List有5筆(代表有2筆TableB無資料),
那麼我要怎麼去抓出是哪2筆在TableB無資料?使用List<>和DataTable比較?
那我該轉成相同的容器再使用foreach比較嗎?還是...?
還是有比較好的處理方式?
因為總覺得都一直在QueryDB,希望可以減少QueryDB的次數
麻煩各位前輩指點,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.151.87
※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1396882312.A.14E.html
推
04/07 23:29, , 1F
04/07 23:29, 1F
→
04/07 23:31, , 2F
04/07 23:31, 2F
→
04/07 23:31, , 3F
04/07 23:31, 3F
→
04/07 23:32, , 4F
04/07 23:32, 4F
→
04/07 23:32, , 5F
04/07 23:32, 5F
→
04/07 23:33, , 6F
04/07 23:33, 6F
推
04/09 00:31, , 7F
04/09 00:31, 7F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章