• 沒有找到結果。

CSIE NTU

N/A
N/A
Protected

Academic year: 2022

Share "CSIE NTU"

Copied!
47
0
0

加載中.... (立即查看全文)

全文

(1)

ASP.NET 互動式網頁程式設計 (使用 C#)

CSIE NTU

1

(2)

實例探討 sample3-a1 (1)

2

程式功能

建立與資料庫間的連線

程式內容

protected void Page_Load(object sender, EventArgs e) {

Response.Write("尚未連線..<br>");

Response.Write("進行連線..<br>");

AccessDataSource conn =

new AccessDataSource(Server.MapPath("member.mdb"),

"select * from member");

(3)

實例探討 sample3-a1 (2)

3

程式內容

conn.DataBind();

GridView1.DataSourceID = "";

GridView1.DataSource = conn;

GridView1.DataBind();

Response.Write("連線成功..<br>");

}

(4)

SQL 結構化查詢語言

4

SQL 結構化查詢語言是一套標準的語言,用以管理或存 取資料庫

SQL 主要包含二部份

DML 資料處理語言

包含 SELECT、INSERT、UPDATE 及 DELETE…

DDL 資料定義語言

包含 CREATE、DROP、ALTER 及 GRANT…

(5)

SQL 語法 – SELECT

5

SELECT 查詢命令可用來取得資料表中的資料

語法

SELECT 欄位名稱1, 欄位名稱2, … FROM 資料表名稱

WHERE 條件式 ORDER BY 欄位名稱 (字串需以單引號 ' 括住表示之)

用法

select * from student

select id,name from student order by id desc

select id from student where id<10

(6)

實例探討 sample3-a2 (1)

6

程式功能

會員登入

使用 select 來確認帳號密碼是否正確

程式內容

private bool check(string id, string pw) {

bool flag = false;

string dataSource = Server.MapPath("member.mdb");

string sqlStr = "select * from member ";

sqlStr += "where id='" + id + "' and pw='" + pw + "'";

AccessDataSource conn =

new AccessDataSource(dataSource, sqlStr);

(7)

實例探討 sample3-a2 (2)

7

程式內容

GridView grid = new GridView();

grid.DataSource = conn;

grid.DataBind();

if (grid.Rows.Count > 0) flag = true;

return flag;

}

(8)

實例探討 sample3-a2 (3)

8

程式內容

protected void Button1_Click(object sender, EventArgs e) {

if (idTB.Text != "" && pwTB.Text != "") { if (check(idTB.Text, pwTB.Text))

Response.Write("登入");

else

messageLB.Text = "帳號密碼輸入錯誤!!";

} else

messageLB.Text = "帳號密碼不可空白!!";

} }

(9)

課堂練習 sample3-b1

9

資料庫內容

建立一討論區資料表

包含識別碼、主題、內容、發表者、瀏覽人數及回覆人 數六個欄位

程式功能

建立討論區主題列表畫面

基本概念

利用 select 語法取得資料表中資料

(10)

SQL 語法 – INSERT

10

INSERT 新增命令用來新增一筆資料至指定資料表中

語法

INSERT INTO 資料表名稱 ( 欄位名稱1, 欄位名稱2, …) VALUES ('資料1', '資料2', …)

用法

INSERT INTO student(id, name) VALUES(3, 'Ives')

SQL 語法–INSERT

(11)

實例探討 sample3-a3 (1)

11

程式功能

新增會員帳號

程式內容

protected void upDG() {

string dataSource = Server.MapPath("member.mdb");

string SqlCmd = "select * from member";

conn = new AccessDataSource(dataSource, SqlCmd);

memberDG.DataSource = conn;

memberDG.DataBind();

}

(12)

實例探討 sample3-a3 (2)

12

程式內容

protected void addBTN_Click(object sender, EventArgs e) {

if (idTB.Text != "" && pwTB.Text != "") {

conn.InsertCommand =

"insert into member (id,pw) values

('" + idTB.Text + "','" + pwTB.Text + "')";

conn.Insert();

memberDG.DataBind();

} }

(13)

課堂練習 sample3-b2

13

程式功能

延續 sample3-b1 加入一超連結至 WebForm2

在 WebForm2 中設計發表新文章頁面

基本概念

利用 insert 語法新增文章至資料表中

畫面只提供作者主題及文章內容輸入功能

(14)

SQL 語法–DELETE

14

DELETE 刪除命令用來刪除資料表中的指定資料

語法

DELETE FROM 資料表名稱 WHERE 條件式

用法

DELETE FROM student WHERE id = 3 AND name = 'Ives'

(15)

刪除資料行

15

刪除資料行提供刪除資料功能

文字–欲顯示的文字 (全一致)

文字欄位–欲顯示的資料內容 (繫結)

用法

當刪除資料行中的按鈕被點選時,會引發 RowDeleting 事件

RowDeleting 事件會將選取到的資料列傳入事件參數 e 當中

可在該事件中撰寫修改資料庫資料相關程式

(16)

實例探討 sample3-a4

16

程式功能

刪除會員帳號

程式內容

protected void memberDG_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

conn.DeleteCommand =

"DELETE FROM member WHERE id ='" +

memberDG.Rows[e.RowIndex].Cells[1].Text + "'";

conn.Delete();

memberDG.DataBind();

}

(17)

課堂練習 sample3-b3

17

程式功能

延續 sample3-b1,設計討論區刪除主題功能

在每一資料列加入刪除功能

設計全部刪除按鈕

基本概念

利用 delete 語法刪除資料

利用刪除資料行建立刪除按鈕

(18)

SQL 語法 – Update

18

UPDATE 更新命令用來修改資料表中的指定資料

語法

UPDATE 資料表名稱 SET 欄位1=資料1, 欄位2=資料2, … WHERE 條件式

用法

UPDATE student SET name=„Bob‟ where id = 2

(19)

編輯、更新、取消資料行

編輯、更新、取消資料行提供資料功能

編輯文字–設定編輯按鈕顯示文字

更新文字–設定更新按鈕顯示文字

取消文字–設定取消按鈕顯示文字

用法

當編輯按鈕被點選時,會引發 RowEditing 事件

RowEditing 事件會將選取到的資料列傳入事件參數 e 當中

可將 GridView 的 EditIndex 屬性設定為該選取資料列的索引 值 e.NewEditIndex 並重新執行繫結動作

編輯和取消按鈕被點選時,會引發 RowUpdating 及 RowDeleting 事件,可在該事件中撰寫對應處理程式

19

(20)

實例探討 sample3-a5

20

程式功能

修改會員密碼

程式內容

protected void upDG() {

string dataSource = Server.MapPath("member.mdb");

string SqlCmd = "select * from member";

conn = new AccessDataSource(dataSource, SqlCmd);

memberDG.DataSource = conn;

memberDG.DataBind();

}

(21)

實例探討 sample3-a5

21

程式內容

protected void memberDG_RowEditing(object sender, GridViewEditEventArgs e)

{

string id =

memberDG.Rows[e.NewEditIndex].Cells[1].Text;

string pw = TextBox.Text;

conn.UpdateCommand =

"UPDATE member SET pw='" + pw + "' WHERE id='" + id + "'";

conn.Update();

memberDG.DataBind();

}

(22)

課堂練習 sample3-b4

22

程式功能

設計討論區修改主題功能

提供選取按鈕

將選取項目顯示於文字方塊中

提供修改按鈕

基本概念

利用 Update 語法修改資料

利用選取資料行建立選取按鈕

(23)

樣板資料行 (1)

GridView 中的樣板資料行可加入任意的控制項,

允許我們自由的設計資料顯示方式

23

(24)

樣板資料行 (2)

在 GridView 控制項中點選右鍵,可在『編輯樣板

』選項中選取欲編輯的樣板資料行

24

(25)

樣板資料行 (3)

在樣板編輯視窗中,從工 具箱拖曳 LinkButton 控制 項至 ItemTemplate 項目中

將該 LinkButton 控制項的 CommandName 屬性設定 為 Select

25

(26)

樣板資料行 (4)

右鍵點選 LinkButton 控制項的 (Edit DataBindings…) ,在自 訂繫結運算式視窗中,加入繫結語法

Eval(“name”)

26

(27)

樣板資料行 (5)

同樣繫結樣板資料行中的 Image 控制項Eval(“image")

27

(28)

實例探討 sample3-a6 (1)

28

程式功能

藝人簡介

點選藝人名稱導至該藝人詳細資料頁面

程式內容

利用 GridView 中的樣板資料行加入 LinkButton 及 Image 控制 項,用來連結藝人詳細資料頁面及顯示藝人照片縮圖

(29)

實例探討 sample3-a6 (2)

程式內容

29

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

{

if (e.CommandName == "Select") {

Session.Add("name",

((LinkButton)e.CommandSource).Text);

Response.Redirect("WebForm1.aspx");

} }

(30)

實例探討 sample3-a6 (2)

程式內容

顯示詳細資料

30

protected void Page_Load(object sender, EventArgs e) {

string name = Session["name"].ToString();

string SqlStr = "select * from member where name = '“

+name+"'";

AccessDataSource conn =

new AccessDataSource(Server.MapPath("member.mdb"),SqlStr);

conn.DataBind();

GridView temp = new GridView();

temp.DataSource = conn;

temp.DataBind();

Response.Write(temp.Rows[0].Cells[0].Text + temp.Rows[0].Cells[1].Text);

Image1.ImageUrl =temp.Rows[0].Cells[2].Text.ToString();

}

(31)

課堂練習 sample3-b5

程式功能

更新瀏覽人數資料

基本概念

利用 GridView 中的樣板資料行加入 一 LinkButton 控制項

點選該控制項時連接資料庫更新瀏覽人數欄位資料

利用 CommandArgument 來儲存識別碼

31

(32)

DataList 控制項 (1)

DataList 控制項可使用樣板與樣式定義的格式來 顯示資料

常用屬性

DataSource – 設定資料來源

常用方法

DataBind – 進行資料繫結

32

(33)

DataList 控制項 (2)

在 DataList 控制項上點選右鍵,選擇欲編輯的樣 板區塊

33

(34)

DataList 控制項 (3)

項目樣板的編輯畫面 中,可以在

ItemTemplate 中設定 欲顯示的資料格式

可利用 HTML 控制項 中的 Table 控制項進 行排版動作

(最好將 Table 格式設定 好後,再拖曳至

DataList 的 ItemTemplate 項目中)

34

(35)

實例探討 sample3-a7 (1)

程式功能

購物清單

程式內容

35

protected void totalBTN_Click(object sender, System.EventArgs e)

{

int total = 0;

foreach (DataListItem item in shoppingDL.Items) {

if (((CheckBox)item.FindControl("purchaseCB")).Checked) total +=

int.Parse(((Label)item.FindControl("costLB")).Text);

}

totalLB.Text = total.ToString();

}

(36)

課堂練習 sample3-b6

程式功能

延續 sample3-b5

利用 DataList 控制項顯示文章內容

基本概念

在 Table 中放置 Web 控制項中的 Label 控制項,設定該 Label 控制項的資料繫結運算式,以顯示資料表中資料

最後將 Table 控制項拖曳至 DataList 的 ItemTemplate 項 目中

主程式需設定 DataList 的 DataSource 屬性及進行 DataBind 動作

36

(37)

常用樣板

ItemTemplate

設計控制項中每一列資料的外觀

AlternatingItemTemplate

類似 ItemTemplate 樣板,此樣板為每隔一資料列的 方式呈現

EditItemTemplate

設計編輯模式資料列的外觀

SelectedItemTemplate

設計選取模式資料列的外觀

37

(38)

實例探討 sample3-a8 (1)

程式功能

購物清單

程式內容

38

protected void Page_Load(object sender, System.EventArgs e) {

string dataSource = Server.MapPath("db1.mdb");

string sqlStr = "select * from shopping " ;

conn = new AccessDataSource(dataSource, sqlStr);

if(!IsPostBack) upDL();

}

protected void upDL()

shoppingDL.DataSource = conn;

shoppingDL.DataBind();

}

(39)

課堂練習 sample3-b7

程式功能

利用 DataList 控制項設計學生成績表

以二行不同色彩方式顯示學生成績並提供編輯功能

基本概念

利用 Table 設定欲顯示畫面

在 DataList 的 ItemTemplate 及

AlternatingItemTemplate 項目中置入不同樣式格式

設計 EditItemTemplate 項目

39

(40)

使用者控制項

使用者控制項允許我們自訂所需的控制項形式

設計使用者控制項

在方案總管專案名稱上點選右鍵來加入使用者控制 項

可藉由 HTML 控制項中的 GridLayoutPanel 來進行絕 對座標排版

引用使用者控制項

從方案總管中將使用者控制項拖曳至設計畫面即可

40

(41)

加入使用者控制項 (1)

在專案名稱上點選右鍵,即可加入一使用者控 制項

41

(42)

加入使用者控制項 (2)

在加入新項目視窗中,選取 Web 使用者控制項 項目

42

(43)

加入使用者控制項 (3)

成功加入後,方案總管中即會產生一副檔名為 ascx 的使用者控制項檔案

43

(44)

實例探討 sample3-a9

程式功能

登入帳號密碼檢驗

程式內容

44

private void submitBTN_Click(object sender, System.EventArgs e) {

if(idTB.Text == "alice" && pwTB.Text == "alice") messageLB.Text = "登入成功";

else

messageLB.Text = "資料錯誤";

messageLB.Visible = true;

}

(45)

存取使用者控制項成員內容

如果需要在引用的程式碼中,存取使用者控制 項的欄位屬性值,或是呼叫方法時,必須在引 用的程式碼中先宣告該使用者控制

宣告方式

public 使用者控制項類別名 使用者控制項 ID;

public WebUserControl1 myControl;

45

(46)

課堂練習 sample3-b8

程式功能

登入系統

基本概念

利用 UserControl 建立一登入控制項,允許使用者設 定資料庫、資料表及登入成功連結網頁等資訊

在主程式中設定上述參數資訊

46

(47)

End

47

參考文獻

相關文件

Table 進入 Edit Mode 利用右鍵+S 控制大小 利用右鍵+R 控制旋轉度 利用右鍵+G 控制軌道位子 利用右鍵+E 新增軌道.. 步驟 十一

Visual Basic提供了許多控制項介面來處理由鍵盤輸入

Private Sub Dir1_change() File1.Path = Dir1.Path updatePath.

之意,此指依照命令動作的意義。所謂伺服 系統,就是依照指示命令動作所構成的控制

進而能自行分析、設計與裝配各 種控制電路,並能應用本班已符 合機電整合術科技能檢定的實習 設備進行實務上的實習。本課程 可習得習得氣壓-機構連結控制

… 按下確定即可產生 DataSet (資料集),再利用 DataAdapter 中 Fill 方法即可將所設定的查詢內 容填入 DataSet 當中..

… 點選 LinkButton 控制 項的 (DataBindings) 屬性,在自訂繫結

z按下確定即可產生 DataSet (資料集),再 利用 DataAdapter 中 Fill 方法即可將所設 定的查詢內容填入 DataSet 當中.. DataGrid