作者DearKurt ("小朋友"會自己找出路...)
看板C_Sharp
標題Re: [問題] 請教 Adapter 的觀念
時間Sat Aug 18 14:55:18 2012
我是沒直接用DataAdapter
因為如果是用Visual Studio開發
它有功能可以針對你的資料表自動產生相對應的DataAdapter
整合到TableAdapter內 以及相對應的DataTable
而且所有Command跟Connection物件也一同幫你設計好
這功能VS Express版只支援Access資料庫跟SQL SERVER COMPACT資料庫
專業版以上才支援所有資料庫
另外講到資料處理流程
預設它所產生的SelectCommand是撈所有資料
如果資料很多時 為了改某一筆資料而把所有資料放到DataTable內 實在很沒效率
這時你可以對TableAdapter作"加入查詢"動作 專門針對自訂條件查詢
通常命名為FillByXXX
所以整個流程
先FillByXXX(某DataTable) 然後去修改某DataTable內的資料 再用Update(某DataTable)
這樣Update就會自動判斷你對某DataTable所做的變化 不管是新增修改或刪除
用相對應的Command去處理資料
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.28.87
1F:推 magaiml:那請問一下,那個工具在哪呢?還有 參數 到底如何使用? 08/20 12:34
2F:→ magaiml:既然參數是命令的變數 那為何還要給他值呢? 08/20 12:34
http://ppt.cc/vQg8
建好TableAdapter後
再去觀察自動產生的TableAdapter原始碼
或是在Form設計模式下把該TableAdapter元件拉進去
就可以知道裡面的Command參數 程式如何寫的 以及如何設定
不過微軟在這資料庫部分已經作很多程式自動化對應產生
應該只需要懂得如何利用這些精靈工具會比較省事
※ 編輯: DearKurt 來自: 218.173.30.200 (08/21 00:02)
3F:推 magaiml:謝謝你,我發現這個工具真不錯用,但我使用起來 08/24 17:32
4F:→ magaiml:發現由工具做出來的DataTable DataSet DataAdapter 08/24 17:33
5F:→ magaiml:等等,都無法和原本的做連結 08/24 17:34
6F:→ magaiml:例如 我有寫一個方法,丟給她 DataTable 他就會更新資料 08/24 17:34
7F:→ magaiml:然後回傳,此時我就不能丟工具做出來的DataTable 08/24 17:35
8F:→ magaiml:他們是屬於不同空間的東西,要如何解決呢? 08/24 17:35
9F:→ magaiml:我要一次更新數個原始資料表,不就很麻煩? 08/24 17:36
10F:→ DearKurt:可以用GetData直接回傳新的DataTable 08/25 14:50
11F:推 magaiml:這個我試過呀,的確可以把數據帶入我寫的方法, 08/25 20:22
12F:→ magaiml:可是要更新回去就沒辦法了,即使用COPY到原Table 08/25 20:24
13F:→ magaiml:也沒辦法,看來如果要寫一個專門更新的元件, 08/25 20:24
14F:→ magaiml:還是要用寫的,除非每個資料庫各寫一個方法, 08/25 20:25
15F:→ magaiml:謝謝你告訴我這麼好用的工具,謝謝。 08/25 20:25
16F:→ magaiml::) 08/25 20:25