這4個月每天都被關在實驗室練比賽題目,完全是蹲監獄的狀態QQ。

就來寫篇關於這些題目的廢文

C# Form & Event & Data Grid View

在剛開始摸索 C# Form 的時候會發現視窗元件的某些事件好像不再IDE裡面! 這就得要用到委派事件來用程式碼新增,不過在比賽當天不能查資料的情況下,Event 的參數名稱只能去摸熟了,但是可以確定第一個參數是 [Object sender,]!

至於 Data Grid View ,這邊除了用Visutal Studio 本身去拖拉連接以外,從 SQL Server撈資料的時候,可以用 SqlDataAdapter 直接從這個方法去下Sql指令,然後 Fill 到 DataSet

另外,在題目中看到很不可思議的地方是,居然在用 MSSQL 欄位存圖片,我整個人都傻眼了,為了用 MSSQL 存圖片,折騰了我好多時間在研究怎樣存,然後還有一個要做視窗螢幕截圖的題目,關於這兩個雷,我會放在我的 elecsofts.net 筆記中!

ADO.NET & LINQ

ADO.NET 這邊,上面的DataGridView,這個方法的 DataSource設定就可以使用到 ADO.NET 功能。
最一開始我就想,為什麼 .sdf 這個資料庫檔案打不開,結果他好像是舊版的資料庫,所以在 Visual Studio 2015不能直接用 SqlClient....,要使用 SqlCeServer 這個類別來解決,但是這個類別加入參考之前要先安裝 SQL Server Compact 4.0;至現在的資料庫多數已經使用 .mdf 了,就能直接使用 SqlClient。

除了 SqlCeServer、SqlClient 以外,還有一個 OleDB,據使用後我比較常用的是用 OleDB 來操作 Excel 表,做 CSV 匯入與匯出!

在ADO.NET外還有一個 LINQ ,可以透過 LINQ 直接搜尋東西,覺得蠻方便的,而且還可以寫擴充方法! 其實 LINQ 下的指令和 SQL 指令還蠻像的:

string[] arr = new string[]{"A","B","C","D","E"};

var Result = FROM DATA in arr WHERE DATA = "A" SELECT DATA;  

另外 LINQ 還可以對xml格式、json格式做搜尋,十分好用!

Microsoft.Office.Interop.Excel

這是一個C# 要控制 Excel 採用的類別,剛開始用的時候覺得滿扯的,這個API居然就直接打開 Excel 365 然後開始自動填表,我差點笑到把門撞壞,原來API是這樣運作的(OMG),結果用這個寫程式的時候,最後發現自己沒有清除所有的記憶體利用,所有的檔案都被卡住不能讀寫,只能慢慢用工作管理員刪除。

Word Merge Mail Programming

這大概是我覺得最扯的部分,因為 Word 居然還可以用 Merge Mail 寫程式處理自動化表格,不過我找不到迴圈有關的指令,只有 IF 可以用! 不然多方便阿。

{IF {MERGEFIELD Stars} = 5 "GOOD JOB" "MAKE PERSISTENT EFFORTS"}

廢話結束,不意外下周比賽完就要繼續做幾個有趣的APP。