2019/0304/SS集合運算/子查詢/exists&asp.net GridView 事件 OnRowDataBound
SS
集合運算
聯集 union差集 except交集 intersect
欄位數量必須相等 , 資料型態必須一樣
兩次查詢 一個結果
--集合運算set
--聯集union
select 姓名 from 員工
union
select 姓名 from 學生
--交集intersect
select 姓名 from 員工
intersect
select 姓名 from 學生
--差集except
select 姓名 from 員工
except
select 姓名 from 學生
select 姓名 from 學生
except
select 姓名 from 員工
-------------------------------
select 姓名 from 員工
union all
select 姓名 from 學生
--------------------------------
--語法注意:欄位數目一樣,欄位資料型態一樣
select 身份證字號,姓名 from 員工
union
select 姓名,性別 from 學生
子查詢
(同一個查詢) ex.班級表裡面張無忌選了哪幾門課但只有他的學號(在另外一張表內)
資料筆數大時合併查詢效能比子查詢好
1.合併查詢(join別張資料表進來且關聯後下條件)
2.子查詢(先用以知資料查詢到查詢資料,再用查詢資料查詢)
竭盡可能的去想出一段sql去看能否拉出資料,再來才重複驗證是否正確
合併查詢 效能 > 子查詢 >= 集合運算
取別名就像取id,可用於完全表達法
自身取別名合併 (卡式基扣掉自己)
原因自身表欄位無法跟自身運算去比較
on 看成 where 的條件
子查詢 查出來的 通常不止一筆資料 很容易同名同姓錯誤結果
只有子查詢資料只有一筆資料時才會用等於
而必須使用 in 避免未來出現錯誤
exists 主查詢與子查詢是否有相同資料 ((合併寫法就沒有主子問題
不需要 欄位對欄位
用在只知道主鍵與關聯時
其實是透過合併查詢的方法但是子查詢的語句表現
A與B之間無關聯則無法使用EXISTS
OnRowDataBound 事件
藉由繫結事件去寫c#
控制項細節還是要靠自己改
如 男女 or true false
可以從前端與後端改,也可去sql改
控制項屬性不熟悉就去查字典
BoundField 控制項
asp 繫結 sql 都是一筆一筆繫結上去 一百萬筆就是一百萬次

先做了欄位 才是值 所以必須排除欄位
欄位索引值為 -1
控制項細節可以寫c#一筆一筆去改

SqlDataSource 控制項
同樣方式也可藉由修改 sql 裡面的屬性再去拉鏈結做修改
allowsorting 排序布林屬性
需要指定 sortexpression
預設元屬性是依照SelectCommand抓取的sql原本的主key去排
allowpaging 分頁屬性
設定 pagesize 屬性
GridView 控制項
內 < 自動編碼裡面都是有關設計的屬性
pagersettings
mode
pagebuttoncount
aps.net 前端的方法去操作後端的物件
控制項的css都是編譯inline產生
asp.net要寫css or js要去看編譯完後的原始碼再去在style cript增加屬性

css 難是難在怎在對的時間狀態選到要操控的物件
a [ href ] 標籤a裡面 href屬性
*= 包含
"First"
Last updated
Was this helpful?