2019/0321/TSQL&TDM&ASP.NET_Datalist
TSQL
--流程控制
--流程控制
--if/else
declare @test varchar(15) ='hello0000'
if @test='hello'
print '成立'
else
begin
print '抱歉'
print '不成立'
end
gotsql 比較運算式是直接用 = 而不是像c# ==
tsql 不是像c#用 ( ) 而是用 指令 begin end
if else 通常
一行指定運算
與 一行比較運算
使用else if 不但比較好寫且 IF 只會被執行一次
如果 X X X 存在的話 要幹嘛幹嘛 ...
null 是特殊值 比較時不能用 =
函數顏色為桃紅色
object id (' ') 判斷資料庫裡的某個物件存不存在
並顯示出來
from 後面一定要接表 所以當後面為變數時會出錯
如果確定是一個表 但變數存的是表的名稱
則必須要用指令 exec ( ) 可以將 ( ) 內的參數化為字串
在 tsql 中比if else 更常用 c# switch case
case 又有間單 case 與搜尋 case 用法
簡單case ( 每一行都會執行
搜尋 case ( 搜尋確定 才會執行那個case ( 等同於 c# 中的 switch
練習 等第判斷
比 C# 優點是 能夠執行 比較運算 且有多重路徑選擇
WHILE 迴圈
通常迴圈內的程式會與條件有關係
TSQL累加1不能寫 ++ 必須寫 @i+=1 增量值
set @sum+=@i 起始值
@i<=100 結束值
宣告後內容才會有值 必須要給初始值 不然沒辦法直接拿來運算 會算出空值
常見系統函數
長得像變數 但顏色是函數 系統內建函數 EX.@@ROWCOUNT
@@ROWCOUNT 將前段結果受影響筆數存入
例外處理
只要認為 某段程式 可能會在某些程式下會有例外發生就要寫例外處理 否則使用者會直接看到錯誤碼
錯誤訊息裡面會透露出系統內部結構 會被駭客下指令變更資料
原本執行 X 如果沒例外 就執行 TRY 如果有例外
但也可顯示給開發人員做除蟲
ERROR_STATE( ) 函數 錯誤訊息


實務上
撈帳號 有資料 顯示此帳號已有人使用
沒人使用則顯示 帳號已新增完成
資料庫作業五 TDM(Toad Data Modeler)
請將如下ER-Diragram利用TDM(Toad Data Modeler)資料庫塑模工具軟體,轉換為視覺化的關聯圖,並利用該軟體產生對應的SQL DDL Script,並利用此Script在資料庫上建置資料庫。
圖靈機 : 要做出能寫程式的程式
統一塑模語言
需求 -> 系統分析 -> 設計文件 -> 自動產出coding ( 用以上軟體
mda 模型

視覺化的關聯圖:
SQL DDL Script:
SQL Server資料庫圖表:
輕量 ssml 管理介面(免費) sqlsever 歐洛扣 管理介面要錢 通常買 tode
Er-mode用tode畫 要用國際通用的er-mode


多值屬性 enty 不要加 因為國際ermod上稱為另外一個實體



系統分析文件就像題目給的圖
很清楚的定義(資料型態大小關聯 等等… (系統設計文件)



foreign key 外來鍵
不用畫在ermode上面 身份證字號不用做? 關聯時會自動+

一對多有兩種
一對多( 可識別的) pfk
一對多 ( 不可被識別 ) fk
三元關係 一對多要拉對方向

複合屬性 轉資料表原則 只做 長在上面的屬性 不做樹根
ASP.NET 元件Datalist
第二個資料控制項 Datalist
第一個是 gridview
資料來源通常利用其他控制項來抓取
以前都用gridview現在換成 Datalist
還是一樣用sqldatasource連接資料庫
然後用datalist顯示資料
Datalist 沒有預設畫面 只有指定了datasourceid
Visual studio 幫忙自動產生了itemtemplate畫面
(2017版本才有以前的沒有
自動產生 Key value 的排法顯示
gridview具有預設畫面但改動幅度很小
template 中文為模板 : 意思就是沒有任何的預設功能所有功能都必須自己寫
itemtemplate
物件模板 : 用在資料讀取並顯示出來
eval 可編輯
Datalist 因為沒有預設顯示所以必須自己編排
甲pchome實做
導入照片
RepeatColumns重複列
GridLines網格線
所以來設定頁面style 首先設定 div 與 id 並且編輯 style
利用div切板再塞入圖片與控制項 再去設置 id 去調整style
將template 當成畫布 一樣在裡面塞 div 然後做style
在label 做更多的 style Big 利用控制項裡面的屬性做style而不是直接key css
然後改變顯示資料型態
原價:
範例:

優點 :
不用接觸後端就可以成行且可以連結資料庫動態的 資料庫增刪修前面就會改變
所以 datalist適合用在前台 之所以要用template讓你搞設計
Gridview適合用在後台
儲存格的內聚外聚設定 CellSpacing="20"
儲存格橫直排RepeatDirection="Horizontal"
Datalist 最後會被轉譯為html table td tr ….
Itemtemplate 最重要 在裡面讀資料 沒讀資料都看不見
其他template
(template 畫布隨便你)
headertemplate 頂部
footertemplate 底部
separatortemplate item裡面序列出現
alternatingitemtemplate item與 item 基數偶數不同樣式
itemtemplate 只要有item就跟讀資料有關
itemstyle 套用到相關的Itemtemplate以前常用現在不常
selecteditemtemplate 只要被選了的話就會顯示會隱藏原本的
塞按鈕進itemtemplate 點擊後消失 轉為顯示在selecteditemtemplate
要在後端寫判斷按鈕被觸發
id 索引值 = 發生事件的那個物件的索引直 重新做一次資料繫節
Datalist 可以更改刪除 但還是不能新增 在後台不常見,
但提供評台的業者(消費者)(賣家)的後台還是會使用datalist
如何使用datalist做編輯 需要一個編輯扭可以按下去
之後從唯讀變成一個可編輯的表單 固定的commandname=edit
還是需要按扭觸發事件要寫在datalist on屬性
需要將textbox radiobutton list … 根據資料庫裏面資料型態 安排在edititemtemplate裡面已供修改
多行打字框 textbox textmode = multiline
實務上還要加上驗證控制項
編輯框的內容樣式直接在 edititemtemplate 裡面修改
再來要判斷上架下架必須重資料庫抓資料寫入後端做判斷
控制項放在別人控制項中會找不到 所以必須要使用 findcontrol 並寫說抓的值是什麼(是label)
觸發時間點是編輯模式時所以要寫在 編輯模式觸發中 (上面是錯的)
偵錯 下中斷點 可疑的地方註解掉 慢慢試出來 是位址找到空值或是...
找不到錯誤...
轉換控制項來用label轉成textbox來用 改為抓 string 字串 結果還是錯…
下總結
其他功能都還是正常的 就是抓不到 上架下架的判斷值所以變成不能更改
老師講解
不能直接寫e.item因為gridview DataList 都是一個畫面顯示很多個資料 就必須用陣列方式去找索引直 且不是判斷01而是true fulse
下一次要講更新圖片
今日成果
前端
後端
Last updated
Was this helpful?