• 沒有找到結果。

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

N/A
N/A
Protected

Academic year: 2022

Share "ASP.NET 網頁程式設計 (使用 C#)"

Copied!
61
0
0

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

全文

(1)

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

講師︰唐士軒

CSIE, NTU

(2)

2

Outline

z

課程簡介

z

資料核對

z

網頁類型簡介

z

軟體安裝說明

z

C# 基本語法複習

(3)

課程資訊

z

課程講師:唐士軒 Tang, Shih-Hsuan

z

上課時間:

z 2006/07/26 ~ 2006/09/02 z週三及週六 PM 7:00 ~ 9:30

z

聯絡方式:

zives.net@gmail.com

z

課程網頁:

www.csie.ntu.edu.tw/~r93057/aspnet134

(4)

4

教材與進度

z

課程先修

z具備 C# 基礎程式設計能力 z對程式設計有興趣者

z

上課教材

z以投影片為主,無指定用書 z上課投影片可於課程網頁下載

z

課程進度

z依照學習情況做動態調整

(5)

課程內容

z

環境安裝與介紹

z

C# 基礎語法複習

z

Web 基本控制項

z

SQL 語法

z

資料庫應用程式

z

DataGrid 控制項

z

DataList 控制項

z

使用者自訂控制項

(6)

6

參考書目

z

ASP.NET 1.0 教學手冊–使用 C#,鍾俊 仁 譯,碁峯出版

z

用實例學 ASP.NET,章立民 編著,碁峯 出版

z

C# 範例精要解析,呂文達 編著,松崗 出版

z

Visual C# .NET 程式設計經典,曹祖 聖、吳明哲、林兆燊 主編,松崗出版

(7)

評分方式

z

缺曠情形–20%

z請務必準時上課 z儘可能不要缺課

z

期中測驗–30%

z約在第六次至第八次上課期間 z課程進度落後則改為課後練習

z

期末測驗–50%

z最後一堂上課時間舉行

z請務必參加

(8)

8

Outline

z

課程簡介

z

資料核對

z

網頁類型簡介

z

軟體安裝說明

z

C# 基本語法複習

(9)

Outline

z

課程簡介

z

資料核對

z

網頁類型簡介

z

軟體安裝說明

z

C# 基本語法複習

(10)

10

網頁伺服器

z

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

z

常見的網頁伺服器

zInternet Information Services (IIS)

zApache

(11)

靜態網頁

z

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

要求網頁 網頁資料

(12)

12

動態網頁 (1)

z

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

z

動態網頁類型

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

要求網頁

靜態網頁及指令

分析指令 產生網頁

(13)

動態網頁 (2)

z

動態網頁類型

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

動態產生網頁 要求網頁

傳送網頁

(14)

14

Outline

z

課程簡介

z

資料核對

z

網頁類型簡介

z

軟體安裝說明

z

C# 基本語法複習

(15)

軟體價位

z Microsoft Visual Studio.NET Professional 2003 中文專業版 ( 60天評估版 )

z $ 400

z Microsoft Visual C# .NET 2003 中文標準版

z $ 3000 ~ 4000

z Microsoft Visual Studio .NET Professional 2003 中文專業版

z $ 27500

(Yahoo 拍賣 2005/05)

(16)

16

安裝注意事項

z

若要使用 Web Form 請先安裝IIS

z

XP 帳號不要使用中文

z

不要同時放二張 .NET 安裝光碟於實體或 虛擬光碟機內

z

安裝磁碟空間約佔 1.5G

(17)

IIS 伺服器 (1)

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

z 至 [控制台] 選擇 [新增或移除程式] 即會跳出下

圖視窗,點選左方 [新增/移除 Windows 元件]

(18)

18

IIS 伺服器 (2)

z 點選 [新增/移除 Windows 元件] 後會出現 [Windows 元 件精靈] 視窗,將 IIS 選項打勾點選下一步即可進行安 裝動作

(19)

IIS 伺服器 (3)

z

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

(20)

20

軟體安裝 (1)

(21)

軟體安裝 (2)

(22)

22

軟體安裝 (3)

(23)

軟體安裝 (4)

(24)

24

軟體安裝 (5)

(25)

軟體安裝 (6)

(26)

26

軟體安裝 (7)

(27)

執行程式 (1)

(28)

28

執行程式 (2)

(29)

Outline

z

課程簡介

z

資料核對

z

網頁類型簡介

z

軟體安裝說明

z

C# 基本語法複習

(30)

30

字串數值型別轉換

z 數值轉成字串型別

z 利用 ToString() 方法來完成 z 例如︰

int a = 321;

string b = a.ToString();

z 字串轉數值型別

z 利用數值型別 Parse() 方法來完成 z 例如︰

string b = "321";

int a = int.Parse(b);

(31)

選擇結構流程控制 (一)

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

z 語法

if (判斷條件) {

條件成立時執行內容;

} else {

條件不成立時執行內容;

}

(32)

32

多選項流程控制

z 當程式具有多個判斷條件時,可利用 if … else if … else if … else 來完成

z 語法

if (判斷條件1) {

程式區塊1;

}

else if (判斷條件2) {

程式區塊2;

}

else if (判斷條件3) {

程式區塊3;

} else {

程式區塊4;

}

(33)

三元運算子

z

三元運算子可用來取代 if … else 流程控 制,使得程式碼更為簡潔

z

語法

z變數 = 判斷條件 ? 變數值1 : 變數值2

z

用法

z string a = 7>4 ? "7 比 4 大是對的" : "7 比 4 大是錯的";

z輸出結果︰ 7 比 4 大是對的

z string b = 1>4 ? "1 比 4 大是對的" : "1 比 4 大是錯的";

z輸出結果︰ 1 比 4 大是錯的

(34)

34

選擇結構流程控制 (二) (1)

z 程式中若具有多個判斷條件時,除了 if … else if … else 流程控制外,還可以選擇 switch 敘述

z 語法

switch (判斷條件) {

case 條件值1:

程式區塊1 break;

case 條件值2:

程式區塊2 break;

default:

預設程式區塊 break;

}

(35)

選擇結構流程控制 (二) (2)

z switch 流程控制不但簡潔更易維護

z switch 的判斷條件可為變數、數值或字串等等 z 判斷條件結果之資料型別要與所有條件值的資

料型別一致

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

z 若所有條件值皆不滿足時,便會執行 default 的

預設程式區塊內容

(36)

36

重複結構流程控制 (一) (1)

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

z 語法

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

程式區塊;

}

z 用法

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

Console.Write (i + " ");

}

//輸出結果︰0 1 2 3 4 5 6 7 8 9

(37)

重複結構流程控制 (一) (2)

z 迴圈執行時,會先判斷初值是否滿足判斷式,若滿足 則執行程式區塊,程式區塊執行完畢後會回到遞增值 部份,遞增值結束後再一次回到判斷式中,檢查遞增 後的值是否滿足判斷式,滿足再次執行程式區塊,完 成後再次回到遞增值部份,直到判斷式不滿足為止離 開迴圈

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

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

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

z 初值、判斷式及遞增值必須仔細考量設定,以防造成

『無窮迴圈』

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

z for ( ; ; )

(38)

38

變數生命週期

z

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

z

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

z

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

z

實例

z在迴圈中宣告的變數,在迴圈外的程式碼區

塊中便無法存取該變數

(39)

Break 與 Continue

z

break

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

z

continue

z在 for 執行迴圈中,若遇到 continue 陳述句

時,會立即跳至遞增值部份

(40)

40

重複結構流程控制 (二) (1)

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

z 語法

while (判斷條件) {

程式區塊 }

z 用法

int i = 0;

while (i < 10) {

i++;

Console.Write(i + " ");

}

//輸出結果︰ 1 2 3 4 5 6 7 8 9 10

(41)

重複結構流程控制 (二) (2)

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

立,當條件成立時才會執行迴圈中的程式區塊 z while 迴圈中,一樣可以使用 break 及 continue z 程式區塊中,必須有將判斷條件變成 false 的

陳述句,否則將導致無窮迴圈

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

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

(42)

42

重複結構流程控制 (三) (1)

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

進而決定是否執行迴圈中的程式區塊。而

do … while 迴圈第一次執行時並不會先檢查判 斷條件,直接執行迴圈中的程式區塊,執行完 畢後才會檢查條件是否滿足

z 語法

do {

程式區塊

} while ( 判斷條件 );

(43)

重複結構流程控制 (三) (2)

z

用法

do {

Console.WriteLine("1");

}while (false);

//輸出結果︰ 1

z

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

(44)

44

陣列

z

何謂陣列

z陣列可想成是一群資料型別相同的變數所成 的集合

z

為何需要陣列

z當我們需要儲存班上一百位同學的學生姓名 資料時,必須宣告一百個字串變數來儲存,

相當的麻煩。但若使用陣列來儲存,我們僅

需宣告一個一維陣列即可

(45)

常用陣列維度 (1)

z 一維陣列

z 二維陣列

4 3

2 1

0

20 19

18 17

16

15 14

13 12

11

10 9

8 7

6

5 4

3 2

1

(46)

46

陣列宣告

z

語法

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

z 一維陣列用法

z int[] myArray = new int[10];

z string[] studentName = new string[100];

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

z 二維陣列用法

z int[,] b = new int[2,3];

z int[,] c = new int[2,3] {{1,2,3},{4,5,6}};

(47)

重複結構流程控制 (四)

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

z 語法

foreach(陣列元素資料型別 變數名 in 陣列變數名) {

程式區塊;

}

z 用法

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

foreach(int a in arrayA) {

Console.WriteLine(a);

(48)

48

命名空間 (1)

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

z 命名空間允許巢狀的結構,形成階層式的架 構,更容易分類管理

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

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

namespace 命名空間名稱

{

類別;

}

(49)

命名空間 (2)

z 用法

namespace IBM

{

class Notebook

{ } }

namespace Compaq

{

class Notebook

{ }

(50)

50

類别

z

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

z

類別主要包含下列成員

z欄位 (field)

z屬性 (property)

z方法 (method)

z事件 (event)

(51)

物件

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

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

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

z 語法

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

z 用法

z car myCar = new car();

z car myCar;

(52)

52

方法成員 (1)

z

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

z

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

z

語法

存取修飾詞 回傳值 方法名稱 (傳入參數) {

方法內容程式區塊;

}

(53)

方法成員 (2)

z

用法

public void hello() {

Console.WriteLine("您好");

}

z

說明

zvoid 表示沒有回傳值

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

(54)

54

參數傳遞與回傳值 (1)

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

z 語法

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

(參數1型別 參數1名稱, 參數2型別 參數2名稱, …) {

方法內容程式區塊;

}

(55)

參數傳遞與回傳值 (2)

z

用法

public int add(int a, int b) {

return a + b;

}

z

說明

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

z注意型別須一致

(56)

56

靜態成員 (1)

z

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

z

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

z

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

再利用 "." 連接靜態成員名稱即可

z

Main 就是一個靜態方法成員

(57)

靜態成員 (2)

z 語法

存取修飾詞 static 回傳值 方法名稱 (傳入參數) {

方法內容程式區塊;

}

z 用法

z static void Main(string[] args)

z 說明

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

(58)

58

方法多載

z

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

z

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

(59)

Object 型別

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

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

z 將實值型別轉換成參考型別的動作稱為 boxing z ex︰object o = (int) 1;

z UnBoxing

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

z ex︰int i = (int) o;

(60)

60

ArrayList 類別 (1)

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

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

z 陣列與集合比較

較慢 較快

執行速度

不同 相同

儲存型別

不可

自動調整大小

集合 陣列

項目

(61)

ArrayList 類別 (2)

z 命名空間

z System.Collections;

z 常用屬性

z Count–實際包含的元素個數

z 常用方法

z Add–將物件加入至末端

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

z Remove–移除第一個符合指定物件的元素 z Clear–清除所有元素

z Sort–以遞增方式排序元素

參考文獻

相關文件

z 可規劃邏輯區塊 (programmable logic blocks) z 可規劃內部連接

好了既然 Z[x] 中的 ideal 不一定是 principle ideal 那麼我們就不能學 Proposition 7.2.11 的方法得到 Z[x] 中的 irreducible element 就是 prime element 了..

z [8] Department of Agricultural Information Science and Education, Mississippi State University。Module C: Verbs Connoting the Levels

FUNCTION ODD_par8 (DI: STD_LOGIC_VECTOR(7 DOWNTO 0) ) RETURN STD_LOGIC;. FUNCTION ODD_par81 (DI: BIT_VECTOR(7 DOWNTO 0))

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

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

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

z在 salary 屬性定義中,不設定 set ,並且 get 回傳值為 baseSalary 加上