• 沒有找到結果。

ASP.NET 互動網頁程式設計

N/A
N/A
Protected

Academic year: 2022

Share "ASP.NET 互動網頁程式設計"

Copied!
53
0
0

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

全文

(1)

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

CSIE NTU

1

(2)

大綱

 課程簡介

 資料核對

 網頁類型簡介

 軟體安裝說明

 C# 基本語法複習

2

(3)

教材與進度

 課程先修

對程式設計有興趣

具備 C# 基礎程式設計能力

 上課教材

以投影片為主,無指定用書

上課投影片可於課程網頁下載

 課程進度

依照學習狀況做動態調整

3

(4)

課程內容

 環境介紹與安裝

 C# 基礎語法複習

 Web 基本控制項

 SQL 基本語法

 DataGrid 控制項

 DataList 控制項

 資料庫應用程式

4

(5)

評分方式

 出席狀況 – 20%

請準時上課

請不要缺課

 期中測驗 – 30%

約在第六次至第八次上課期間

課程進度落後則改為課後練習

 期末測驗 – 50%

最後一堂上課期間舉行

請務必參加

5

(6)

大綱

 課程簡介

 資料核對

 網頁類型簡介

 軟體安裝說明

 C# 基本語法複習

6

(7)

大綱

 課程簡介

 資料核對

 網頁類型簡介

 軟體安裝說明

 C# 基本語法複習

7

(8)

網頁伺服器

 網頁伺服器是一個管理網頁的軟體,可透過網 路提供網頁內容至用戶端瀏覽器

 常見的網頁伺服器

Internet Information Services (IIS)

Apache

8

(9)

靜態網頁

 靜態網頁的內容,不論任何人任何時間連結至 此網頁,所得到的內容皆相同

9

要求網頁

網頁資料

(10)

動態網頁(1)

 動態網頁是在使用者要求後才動態產生

 動態網頁類型

用戶端動態網頁 (JavaScript、VBScript⋯)

10

要求網頁

網頁資料

分析指令 產生網頁

(11)

動態網頁(2)

 動態網頁是在使用者要求後才動態產生

 動態網頁類型

伺服端動態網頁 (PHP、ASP、ASP.NET⋯)

11

要求網頁

傳送網頁

動態產生網頁

(12)

大綱

 課程簡介

 資料核對

 網頁類型簡介

 軟體安裝說明

 C# 基本語法複習

12

(13)

軟體介紹

 我們會使用到的軟體有

Internet Information Service

Visual Web Developer 2008 Express Edition

13

(14)

IIS 伺服器(1)

 要執行 ASP.NET Web 應用程式必須先安裝 IIS 伺 服器

 在 Windows XP 下,至 [控制台] 選擇[新增或移 除程式] 即會跳出下圖視窗,點選左方[新增/移 除Windows 元件]

14

(15)

IIS 伺服器(2)

 點選 [新增/移除Windows 元件] 後會出現

[Windows 元件精靈] 視窗,將 IIS 選項打勾點選 下一步即可進行安裝

15

(16)

IIS 伺服器(3)

 當 IIS 伺服器安裝完成後,開啟瀏覽器連結至本 機網址 http://localhost/ ,若 IIS 伺服器順利安裝 完成即可看到下圖網頁

16

(17)

Visual Web Developer (1)

 Visual Web Developer 為發展網頁程式的整合開 發環境

 下載 Visual Web Developer 2008 Express Edition

http://www.microsoft.com/express/download/

17

(18)

Visual Web Developer (2)

18

(19)

Visual Web Developer (3)

19

(20)

Visual Web Developer (4)

20

(21)

大綱

 課程簡介

 資料核對

 網頁類型簡介

 軟體安裝說明

 C# 基本語法複習

21

(22)

基本資料型別

22

System.Object

System.Array System.String

System.ValueType

bool char byte

short int long float double decimal

(23)

字串數值型別轉換

 數值=>字串

使用 ToString()

實例

 字串=>數值

使用 Parse()

實例

23

int a = 2468;

string b = a.ToString();

string b = “2468”;

int a = int.Parse(b);

(24)

選擇結構流程控制 - if

 可利用關係及條件運算子,來描述是否執行流 程中的程式區塊

 語法

24

if (判斷條件)

{ 條件成立時執行內容;

} else

{ 條件不成立時執行內容;

}

(25)

選擇結構流程控制 – if … else if

 當程式具有多個判斷條件時,可利用 if ⋯ else if

⋯ else if ⋯ else 來完成

 語法

25

if (判斷條件 1) { 程式區塊1;

}

else if (判斷條件 2) { 程式區塊2;

}

else if (判斷條件 3) { 程式區塊3;

} else

{ 程式區塊4;

}

(26)

選擇結構流程控制 - switch

 程式中若具有多個判斷條件時,除了if ⋯ else if

⋯else 流程控制外,還可以選擇switch 敘述語法

 語法

26

switch (判斷條件) {

case 條件值1:

程式區塊1 break;

case 條件值2:

程式區塊2 break;

default:

預設程式區塊 break;

}

(27)

選擇結構流程控制 - switch

 switch 流程控制簡潔,而且更易維護

 switch 的判斷條件可為變數、數值或字串等等

 判斷條件結果之資料型別要與所有條件值的資 料型別一致

 若條件值1滿足時,便會執行程式區塊1的程式 內容,直到break 為止離開switch 敍述

 若所有條件值皆不滿足時,便會執行default 的 預設程式區塊內容

27

(28)

重複結構流程控制

 while

 do while

 for

 foreach

(29)

重複結構流程控制 - for

 當我們需要重複執行某段程式區塊時,就可以 利用重複結構流程控制來達成

 語法

 實例

29

for ( 初值; 判斷式; 遞增值 ) { 程式區塊;

}

for (int i=0; i<10; i++) {

Console.Write (i + " ");

}

0 1 2 3 4 5 6 7 8 9

(30)

重複結構流程控制 - for

迴圈執行時,會先判斷初值是否滿足判斷式,若滿足則執行程式區塊

,程式區塊執行完畢後會回到遞增值部份,遞增值結束後再一次回到 判斷式中,檢查遞增後的值是否滿足判斷式,滿足再次執行程式區塊

,完成後再次回到遞增值部份,直到判斷式不滿足為止離開迴圈

程式區塊只有一行時,可省略大括號

假設初值與遞增值有二個以上的運算式,中間必須以逗號分隔

初值、判斷式及遞增值必須仔細考量設定,以防造成『無窮迴圈』

若初值、判斷式及遞增值皆省略,即為無窮迴窮

30

for (int i=0, j=0; i*j<10; i++, j++)

for (;;)

(31)

重複結構流程控制 - for

 break

在 for 執行迴圈中,若遇到 break 陳述句時,會立 即跳離迴圈

 continue

在 for 執行迴圈中,若遇到 continue 陳述句時,會 立即跳至遞增值部份

31

(32)

變數生命週期

 變數的生命週期根據變數所屬的有效範圍來決 定

 我們可以簡單的把一組大括號所包含的範圍稱 為一段『程式碼區塊』

 程式碼區塊界定變數的有效範圍

 實例

在迴圈中宣告的變數,在迴圈外的程式碼區塊中便 無法存取該變數

32

(33)

重複結構流程控制 - while

 for 迴圈中必須先設定迴圈執行次數,而 while 迴圈只須設定執行迴圈的條件即可,當條件滿 足時,即會不斷重複執行

 語法

 實例

33

while (判斷條件) { 程式區塊

}

int i = 0;

while (i < 10) {

Console.Write(i + " ");

i++;

}

0 1 2 3 4 5 6 7 8 9

(34)

重複結構流程控制 - while

 while 迴圈在執行時,會先檢查條件是否成立,

當條件成立時才會執行迴圈中的程式區塊

 while 迴圈中,一樣可以使用 break 及 continue

 程式區塊中,必須有將判斷條件變成 false 的陳 述句,否則將導致無窮迴圈

 while 迴圈判斷條件後加上”;”時,表示迴圈中不 需執行任何程式區塊

34

while (Console.ReadLine() != "yes");

(35)

重複結構流程控制 – do … while

 while 迴圈執行時,會先檢查條件是否成立,進 而決定是否執行迴圈中的程式區塊。而do ⋯

while 迴圈第一次執行時並不會先檢查判斷條件

,直接執行迴圈中的程式區塊,執行完畢後才 會檢查條件是否滿足

 語法

35

do

{ 程式區塊

} while ( 判斷條件 );

(36)

重複結構流程控制 – do … while

 實例

 注意

do ⋯ while 迴圈中,一樣可以使用 break 及 continue

36

do {

Console.WriteLine("1");

}while (false);

//輸出結果︰ 1

(37)

陣列

 何謂陣列

一群資料型別相同的變數所成的集合

 為何需要陣列

當我們需要儲存班上一百位同學的學生姓名資料時

,必須宣告一百個字串變數來儲存,相當的麻煩。

但若使用陣列來儲存,我們僅需宣告一個一維陣列 即可

37

(38)

常用陣列維度

 一維陣列

 二維陣列

38

1 3 2 4 8 6

4 9 2 3 5 7 8 1 6

(39)

陣列宣告

 語法

 一維陣列用法

 二維陣列用法

資料型別[] 陣列名稱 = new 資料型別[陣列大小];

int[] myArray = new int[10];

string[] studentName = new string[100];

int[] a = new int[5] {0,1,2,3,4};

int[,] mat = new int[3,3];

int[,] mat = new int[3,3] {{4,9,2},{3,5,7}, {8,1,6}};

(40)

重複結構流程控制 - foreach

 當我們需要一筆一筆讀取 (無法儲存) 陣列的內 容時,可利用 foreach 迴圈來簡化程式

 語法

 實例

40

foreach(陣列元素資料型別 變數名 in 陣列變數名) { 程式區塊;

}

int[] arrayA = new int[5] {10,1,2,3,4};

foreach(int a in arrayA) {

Console.WriteLine(a);

}

(41)

命名空間 (1)

 使用命名空間的好處可以將功能類似的類別組 織在一起

 命名空間允許巢狀的結構,形成階層式的架構

,更容易分類管理

 若在同一個程式檔中宣告二個名稱一樣的類別 時,編譯會發生錯誤,我們可以利用命名空間 來解決此問題

 利用 using 關鍵字來指定需要的命名空間

 語法

41

namespace 命名空間名稱 { 類別;

}

(42)

命名空間 (2)

 語法

 實例

42

namespace IBM {

class Notebook {

} }

namespace Compaq {

class Notebook {

} }

namespace 命名空間名稱 { 類別;

}

(43)

類別

 類別主要的功能是用來描述定義物件的模樣

 類別主要包含下列成員

欄位 (field)

屬性 (property)

方法 (method)

事件 (event)

43

(44)

物件

 我們可以把類別想像成是車子架構的設計圖,

而物件就是根據車子架構設計圖所設計出來的 車子

 類別的使用需產生該類別的實體物件,我們可 以透過 new 關鍵字來完成

 語法

 實例

44

類別名稱 物件名稱 = new 類別名稱();

car myCar = new car();

(45)

方法成員 (1)

方法是用來定義類別提供的特定功能

實體物件可透過 “.” 來呼叫方法成員,但在方法成員名稱 後需加上 () 來說明傳入的參數值

語法

實例

說明

void 表示沒有回傳值

() 內為空白時,表示不需要傳入參數

45

存取修飾詞 回傳值 方法名稱 (傳入參數) { 方法內容程式區塊;

}

public void hello() {

Console.WriteLine("您好");

}

(46)

參數傳遞與回傳值 (1)

類別的方法可以定義傳入的參數及回傳值,因此我們 可以把需要運算的參數傳給方法,在方法中計算完畢 後再回傳結果

語法

實例

說明

利用 return 關鍵字來傳遞要回傳的值

注意型別須一致

46

存取修飾詞 回傳值型別 方法名稱

(參數1型別 參數1名稱, 參數2型別 參數2名稱, ⋯) { 方法內容程式區塊;

}

public int add(int a, int b) {

return a + b;

}

(47)

靜態成員 (1)

 類別中的靜態成員不需要產生實體物件即可直 接存取引用

 靜態成員必須使用 static 關鍵字進行宣告

 引用靜態成員方式,直接使用類別名稱再利用

“.” 連接靜態成員名稱即可

 main 就是一個靜態方法成員

47

(48)

靜態成員 (2)

 語法

 用法

說明

Main 方法為靜態成員,傳入值為一字串陣列,沒有回 傳值、存取限制為預設的 private

48

存取修飾詞 static 回傳值 方法名稱 (傳入參數) { 方法內容程式區塊;

}

static void Main(string[] args)

(49)

方法多載

 方法多載允許我們將傳入參數不同的方法,定 義成相同的名稱

 當我們在定義二數相加的方法時,藉由方法多 載可讓我們不需定義二個不同名稱的方法,以 區隔為二個整數相加或二個浮點數相加

49

(50)

Object型別

 object 型別是所有參考型別的基礎,因此所有類 別都是直接或間接繼承自 object 型別

 任何參考型別的值皆可指定至 object 型別

 Boxing

將實值型別轉換成參考型別的動作稱為 boxing

 UnBoxing

將物件的值轉換成實值型別的值的過程稱之為 UnBoxing

50

object o = (int) 1;

int i = (int) o;

(51)

ArrayList 和 List 類別 (1)

 使用陣列時我們必須先設定好陣列的大小才可 以使用,相當不方便

 ArrayList 和 List 屬於集合,集合大小會隨資料量 大小動態改變

 陣列與集合比較

項目 陣列 List ArrayList

自動調整大小

儲存型別 相同 相同 不同

執行速度

(52)

ArrayList 和 List 類別 (2)

命名空間

System.Collections;

常用屬性

Count–實際包含的元素個數

常用方法

Add–將物件加入至末端

Insert–將物件插入至指定位置

Remove–移除第一個符合指定物件的元素

Clear–清除所有元素

Sort–以遞增方式排序元素

Reverse–將元素次序反轉

52

(53)

The End

53

參考文獻

相關文件

(二)使用 PHP 語言、MySQL 資料庫與 Apache 伺服軟體開發互

(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS

整體網站之規劃與設計設,包括網站企畫,網頁版面美工設計,網頁版面

[r]

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出

 Request.Cookies[ &#34;Cookie 名稱&#34; ].Value –取得使用者所傳送的 Cookie 內容. 

private void closeBTN_Click(object sender, System.EventArgs

zCount 屬性–取得項目個數 zAdd 方法–新增項目. zRemove 方法–移除指定項目