上回提到,SubSonic就是為了避免開發人員需要在runtime才能知道程式是否撰寫錯誤而誕生的。
不過未解釋那些Class是做什麼用的。
用習慣DataSet或是DataTable的人,其實可以把SubSonic當作視同相同的東西
原先使用DataTable的人,可能會使用下列的方式取得資料
String xxxx = ds.Tables[0].Rows[0]["xxxx"].ToString();
xxxx意指欄位名稱,但撰寫程式的時候可能會因為打錯一個字,造成runtime的時候才能發現有Bug存在
如果說上一篇產生Schema是正確的,
先行引用
using SubSonic; <--使用SubSonic物件而用的命名空間
using SubSonic.Generated; <--使用根據Schema產生的Class的命名空間(根據設定不同而不同)
在北風資料庫中有Employee的資料表。
輸入片段如下
仔細觀察EmployeeID,由於該欄位在資料庫中定義int型態,所以SubSonic會根據欄位型態產生相對應的Class
如果繼續輸入如下,
其實就很像是在Employee中新增一列的處理
如果大概知道SubSonic產生出來的Class的用途,那就繼續往下解說。
查詢範例,下圖示設計畫面
預期結果
1.查詢Employee的資料表
2.如果沒有輸入EmployeeID,則查出全部的資料
2.如果有輸入EmployeeID,則根據EmployeeID進行查詢
3.可輸入LastName、FastName進行模糊查詢
4.查詢結果依照LastName做降冪排序
使用內容包含
1.單一資料表查詢
2.條件查詢
3.模糊查詢
4.指定欄位排序
程式碼
protected void btnSearch_Click(object sender, EventArgs e) //指定變數EmployeeID //假如有輸入姓名,則進行模糊查詢 if (txtLastName.Text.Replace("%", "").Trim() != "") //指定排序方式 //實體化一個空的Employee集合 //使用查詢條件對資料庫進行查詢,並將查詢結果建立在IDataReader中 //將IDataReader的結果存入Employee集合,並關閉連線 //指定GridView的資料來源並且建立 |
直接查詢結果
模糊查詢結果
查詢篇,下回再解析~~