2018年8月28日 星期二

Winform 軟體自動更新

Winform 的更新方式很多,最方便的莫過於微軟的 ClickOnce。這次的需求無法用這個機制滿足User,只好自己開發,順便紀錄一下。

網路上能找了幾篇來參考:



最後整理出一些重點符合需求也能兼顧效能與彈性,我的版本:


  1. 更新檔直接放共享網路。(不用架設額外 Web 或 FTP,大家也都能存取)
  2. 更新檔封裝為一個壓縮檔,縮短下載(複製)時間。
  3. 放置一個純文字文件紀錄目前版本供本地端讀取比較。
  4. 更新時不需出現確認視窗,有更新就直接執行。(ClickOnce會出現)
  5. 需於主程式啟動判斷更新,並可定時檢查與手動執行。

簡單畫個圖 (包含專案佈署流程):

2018年8月21日 星期二

INSERT INTO SELECT 與 SELECT INTO FROM

INSERT INTO SELECT

INSERT INTO TableB ( field1, field2... ) SELECT field1, field2... FROM TableA

  • 目標 TableB 必須已存在。
  • 類似一般 INSERT INTO VALUES 寫法,只是來源改為 TableA
  • 如果 TabelB 與 TableA 結構(含欄位順序)完全一致,後半段可用 * 取代欄位名稱。


SELECT INTO FROM

SELECT field1, field2... INTO TableB FROM TableA

  • 目標 TabelB 不存在。
  • 執行語法時會自動建立資料表並加入值。

2018年8月16日 星期四

偵測程式是否仍在執行,重新啟動並 Email 通知

最近因為工作需要,想設計一個機制:

  1. 持續檢查某個程序是否仍在執行。
  2. 若發現停止執行,重新啟動。
  3. 發現問題時以 Email 通知。

Google 了一下發現兩篇:參考一 參考二

第一個範例已經相當完整,指令模式下寄信使用了 SendEmail

流程圖: