[問題] DataTable用來當做SQL的Table?

看板C_Sharp (C#)作者 (kajm)時間9年前 (2015/11/08 23:17), 9年前編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
各位前輩好, 最近在遇到一個狀況是, 程式已經執行到從資料庫取出幾筆資料且存在一個DataTable內, 然而現在需要去資料庫裏面撈出剩下不在這張Table內的資料, 而且因為Table是用雙主鍵的方式,所以必須要同時判斷兩個欄位 舉例而言,如果我目前的狀況是: [資料庫內資料] [已取出的DataTable] No Version No Version 1 1 1 1 2 1 2 1 2 2 3 2 3 1 3 2 所以我需要取出的是剩餘的: [剩下來的資料] No Version 2 2 3 1 問題在於,已經取出的資料是在程式裡面,不是資料庫裡面的Table 而且No跟Version兩個欄位都要同時符合... 原本我是想說用NOT IN的方式,但是後來發現似乎沒辦法同時比較兩個欄位? 想了一陣子實在找不到辦法,只好發文求救了...QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.198.233 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1446995823.A.B68.html

11/08 23:30, , 1F
NOT(A.No=B.No AND A.Version = B.Version) ?
11/08 23:30, 1F

11/08 23:32, , 2F
僅對標題回答,請使用LINQ
11/08 23:32, 2F

11/08 23:32, , 3F
把你那datatable寫進temp table再處理比較有效率.
11/08 23:32, 3F

11/08 23:33, , 4F
樓樓上這也對啦.
11/08 23:33, 4F
照l大的做法可以找到符合條件的資料了,可是他會變成兩張表JOIN的全部結果 例如: [Result] No Version 1 1 ┐ 1 1 ┘ 因為條件成立了 2 1 ┐ 所以這兩組都少了一筆沒錯 2 1 ┘ 2 2 ┐ 2 2 ├ 這裡因為不在B表裡面,所以有三筆 2 2 ┘ ...下略 我的SQL寫法是: SELECT A.No, A.Version FROM A, B WHERE NOT(A.No = B.No AND A.Version = B.Version); 我覺得剩下的這個問題好像很基本...但是我試了一下還是沒做出來QQ 另外j大提到的LINQ我有機會會再試試看的,感謝! ※ 編輯: kajm (220.133.198.233), 11/09/2015 00:22:44

11/09 00:20, , 5F
先一次取出,再用defaultview的rowfilter區分,
11/09 00:20, 5F

11/09 00:21, , 6F
分別存在兩個不同的 table,就是你要的
11/09 00:21, 6F

11/09 01:08, , 7F
有了!照w大的方法試出來了,萬分感激!
11/09 01:08, 7F
文章代碼(AID): #1MFsTlje (C_Sharp)
文章代碼(AID): #1MFsTlje (C_Sharp)