2012年2月19日 星期日

一秒看破ComboBox 繫結

不只ComboBox 很多控制項都可以跟資料繫結

繫結的東東是 查詢完結果的資料集 (就是可以放到 XXX.DataSource = 右邊的東東)

然後把ComboBox的屬性設一設 他就會跟他繫結

請參照ADO.NET 魔術化的VS工具 - Combox繫結

你就會有以下效果

但是如果你希望你的ComboBox不只看得到name 也要看到id 或者其他欄位 怎辦?

像是
1.AAA
2.BBB
3.CCC

你會發現你無論如何 DisplayMember 或者 ValueMember 都只能挑這資料集的一個欄位

X,那不然就用2個ComboBox 一個裝name 一個裝id 再用foreach合體字串 再用foreach items.add 再...

當然可以,而且顯然方法百百種都可以達成,只是那就失去使用控制項資料繫結的便利性了

使用控制項資料繫結,只要將查詢完的資料指定給ComboBox 的DataSource 就可以免除寫items.add迴圈

既然要ComboBox Display 複數Member 很麻煩做的話 換個角度思考 把查詢結果直接便成最終格式就好了

使用T - SQL

生個新方法

搞定

2012年2月17日 星期五

typed dataset 查複合表的問題

如果你是用typed dataset 來查join起來多對多的表 你會失敗 會看到無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束

即使你的T - SQL完全正確 而且查詢器確實查到資料了 你還是會失敗

經實驗發現因為它自以為是"強"型別 所以每個TableAdapter裡面都必須有主鍵 但是預設建立的TableAdapter如下,只有一把鑰匙

但是因為是join出來的複合表 所以這把假鑰匙自然重複 它便自作聰明的認為違反條件約束

手動以複合鍵來表示該表的唯一值即可 效果如下

2012年2月14日 星期二

windows form application 對資料庫用武器 - DaTa FeeDer Ver 2.0

改版囉 修正一些不便之處 選取一行,不論資料幾萬筆都能把一行選起來,不用捲軸拉半天。

清空選取,選到的直接清空,不用在一格一格按空白。

先天限制須要相同列數才能複製資料,現在也能以迴圈達成。 按下"相同列數"前

按下"相同列數"後

按下"載入全部"後

以實例將比利先生的財報資料 15854筆資料 整理正規回存DB

http://myweb.hinet.net/service/download.html?http://mayhround.sg1007.myweb.hinet.net/downloads/datafeeder%20V2.rar

2012年2月5日 星期日

windows form application 對資料庫用武器 - DaTa FeeDer

對付惡魔 需要 對惡魔武器

對付資料庫亦同 於是 對資料庫用武器 - DaTa FeeDer 誕生

在程式設計的過程中,資料庫面臨的最大的麻煩是什麼呢?

正規化? NO

表格設計? NO

拉FK FK? NO

是餵資料進去測試的時候呀 ˊ3ˋ

再加上每人負責一部分 每人測自己的資料 那合體的時候怎辦

資料庫可以整個卸載 複製 附加 還是要 備份 復原 神馬的 都很簡單

但是要怎麼把部分有資料的表 合併到一個資料庫裡呢

難道當初A員不吃不喝不睡 花了幾天 手打KEY IN進的資料 要再KEY一遍?

試試 對資料庫用武器 - DaTa FeeDer 吧

照慣例圖解:

整體介面

 

 

會自動抓你電腦裡的資料庫有什麼

 

 

讀取表格後,右邊中央是編輯區

 

 

上面那區則是欄位的資訊

 

 

按下匯出XML即可把表格內的資料都存成XML檔

 

 

點下面的rank.xml,剛剛匯出的XML檔再右下角展示,確實已將rank表格複製起來

 

 

按下開啟資料夾,即可看到匯出XML的資料夾

 

 

以記事本打開就會看到XML的內容

 

 

惡搞一下,把編集區的rank_name都刪除,按下存回資料庫,以Management檢視,確實已刪除

 

 

按下載入編輯區,把原先備份到XML的資料再丟回編輯區,按下存回資料庫,按下存回資料庫,以Management檢視,確實已回復

 

 

不同行也能填入,選取「相同型態」的欄位,且格數須相等,按下載入選取

 

 

先前選取的資料已覆蓋編輯區選取的資料

 

 

http://mayhround.myweb.hinet.net/downloads/datafeeder.rar