前言: 話說前陣子爸爸家陽台不斷出現米奇老鼠,立刻清理陽台所有東西,然後又跟市政部門反映問題,可是情況還沒有好轉,米老鼠來完一隻又一隻,我爸陽台在老鼠界應該是網紅打卡聖地(誤),要不然就是米奇老鼠版米奇林三星餐廳(?) 雖然我們抓到了三隻,到上兩個禮拜為止還有至少一隻一直抓不到,每天淩晨還會來吃事後煙留下老鼠屎,真_北。 這隻老鼠對傳統攻擊有抗性,有IT9朋友前陣子用Raspberry pi自製了一台electric mouse trap ,用pi的超聲波雷達放在鞋盒裡,鞋盒裡有一堆食物,底部佈了鐵網,偵測到有老鼠進去以後立即關門通9V電,通個1分鐘再放牠離開,大推我自己也造一台 (Youtube片搜尋一大堆,人類真變態啊,朋友好變態啊)。可是我覺得這樣又好像有點太殘忍,不如先偵測牠們什麼時候來,嚇嚇牠們看看有沒有效果再說吧。 目的: 用Raspberry pi及手上有的感測器弄一隻放陽台用來偵測和嚇嚇老鼠的東西,並把紀錄圖像化到雲端給老爸使用。 邏輯及設計: 當老鼠進入偵測範圍,Motion Sensor偵測到生物活動Raspberry pi 處理來自Motion Sensor的訊號,如果夠強的話開始準備作出回應 Raspberry pi在Angry cats sounds中隨機選出叫聲,再經由Speaker輸出貓叫聲 Raspberry pi指示強光元件發出強光束照射目標 把偵測計數上傳到雲端圖表 材料: Sensor 在網路上看了一些Raspberry pi wild animal camera ,很多也是用Motion Sensor先偵測動物再來,我用的是PIR Motion Sensor被動式紅外線感測器,有低耗電成本便宜的好處。[1],而且可手動調整靈敏度及反應時間。 PIR Motion Sensor就是下面這個 圖片來源: learn.adafruit.com 可手動調整敏感度還有反應時間,這個有點不好調,要試好多遍才找到最佳位置。 可以在Raspbian中輸入pinout查詢GPIO避免插錯 圖片來源: learn.adafruit.com . 一台Raspberry pi 這次使用較舊的Raspberry pi model B+ 萬一老鼠生氣被咬爛錢包也不太痛 . 一張
如何在Winform修改資料庫資料
以下幾個例子說明怎樣利用winform修改資料庫.
[例子1] 在不直接點選DataGridView修改的前題下修改資料庫中關於中文及葡萄牙文的資料 (利用VS Designer篇)
這個例子整個過程不需要任何的Coding, 不過對於理解DataGridview跟資料庫的關係很有幫助。^_^
以下幾個例子說明怎樣利用winform修改資料庫.
[例子1] 在不直接點選DataGridView修改的前題下修改資料庫中關於中文及葡萄牙文的資料 (利用VS Designer篇)
這個例子整個過程不需要任何的Coding, 不過對於理解DataGridview跟資料庫的關係很有幫助。^_^
- 先把介面劃出來
- 為DataGridView加入資料來源
- 為介面下面兩個Textbox進行DataBindings
- 按一下 "中文名稱" 的TextBox, 在"屬性"列中展開"(DataBindings)", 在"Text"欄位中按下功能表, 選擇關於中文名稱的資料庫欄位, 注意Binding Source要跟DataGridView所用的一樣。
- 把葡萄牙文的那個TextBox用同樣方法弄好。
- 接下來為DataGridView的TableAdapter做Sql Statement的設置。基本上 TableAdapter = DataTable + DataAdapter. 令開發者進一步省點保貴時間。在這裡再提一下,Adapter主要負責Sql Statement的執行,在這個例子查詢&更新兩組SQL是必須的。
- 按一下位於畫面下面的TableAdapter, 選擇"在DataSet設計工具中編輯查詢"
- 按一下Adapter的標題, 在工具列中出現屬性頁
- 在屬性頁中, 展開UpdateCommand,在CommandText中輸入Update SQL Statement. 並在Paremeters中設定參數。
- 返回Designer頁面,為"更新"按鈕寫點程式碼。
- 上面程式碼意思是說用DataGridView現在的DataSet透過Adapter對Database進行更新。
- 完成。
[例子2] 在不直接點選DataGridView修改的前題下修改資料庫中關於中文及葡萄牙文的資料 (Coding篇)
看完上面的例子可以知道VS已經可以令開發一支程式不需要寫任何的程式碼 (我們飯碗不保了囧),不過面對一些比較複雜的情況(例如Update多個Table的時候),還是要用程式碼解決, 以下就是動手寫的簡單例子:
看完上面的例子可以知道VS已經可以令開發一支程式不需要寫任何的程式碼 (我們飯碗不保了囧),不過面對一些比較複雜的情況(例如Update多個Table的時候),還是要用程式碼解決, 以下就是動手寫的簡單例子:
- 還是老方法,介面要先拉一下,上面有講過就不多說了。
- 接下來我們要寫一個擷取數據的方法,重新提一下,要DataGridView拿得到數據一定要有BindingSource元件, BindingSource元件的數據由DataAdapter提供, DataAdapter要用Sqlconnection連接資料庫, DataAdapter裡面包含DataTable(或DataSet), 所以接下來我們要建立:
- Sqlconnection
- SqlDataAdapter
- SqlCommandBuilder (選擇性)
- DataTable
- BindingSource
- 程式碼如下,Select command 故意讀取來自兩個table的資料。
- Run來看看, 應該發現DataGridView可以顯示出數據了.
- 接下來是把數據Bind到介面下面的兩個TextBox, 分別是 textBoxName及textBoxRole.
- 在Form_Load中加入textBoxName跟textBoxRole以下兩句就可以了。
上面兩句的意思是說把bs_DGV這個binding source中的USR_SHORT及DISPLAY_SHORT兩個欄位的資料用TEXT的型式分別放到兩個textBox上面去。 - 好啦重點來了,下面是說明怎樣把textBox中的資料回傳到資料庫去。跟上一個例子不同的是這次要更新的資料分別放在兩個不同的資料表(Table)裡.
明天繼續......
參考資料
1. http://msdn.microsoft.com/zh-tw/library/bz9tthwx(v=vs.80).aspx msdn TableAdapter
2. http://www.dotblogs.com.tw/yc421206/archive/2009/07/25/9675.aspx [ADO.NET] 如何 使用 TableAdapter 物件(一)
持續更新中.....
Comments
Post a Comment