c# 與網路資料庫程式設計

27
1 C# 與與與與與與與與與與 與與與與與與與 [email protected]

Upload: mirabel-isambero

Post on 02-Jan-2016

83 views

Category:

Documents


2 download

DESCRIPTION

C# 與網路資料庫程式設計. 羅東高中邱柏翰 [email protected]. 大綱. 本專題結合網頁設計、資料庫、 C# 程式語言等資訊技術 希望學生能做出一個線上資料庫網站 為了與校園生活結合,本專題的主題為 — 校園公佈欄系統。. 歡迎使用學科中心教材. C# 相關研發教材. 資訊學科中心出版之「 98 教學資源小組研發教材手冊」「教學活動設計參考範例- Visual C# 程式設計 ( 高慧君 老師 ) 」 先使用「主控台應用程式」來介紹程式設計的基本概念,再使用「 Windows Form 應用程式」來進行專題:製作一個 mp3 鬧鐘程式。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: C# 與網路資料庫程式設計

1

C#與網路資料庫程式設計

羅東高中邱柏翰[email protected]

Page 2: C# 與網路資料庫程式設計

2

大綱• 本專題結合網頁設計、資料庫、 C# 程式語

言等資訊技術• 希望學生能做出一個線上資料庫網站• 為了與校園生活結合,本專題的主題為—

校園公佈欄系統。

Page 3: C# 與網路資料庫程式設計

歡迎使用學科中心教材

3

Page 4: C# 與網路資料庫程式設計

C#相關研發教材• 資訊學科中心出版之「 98 教學資源小組研

發教材手冊」「教學活動設計參考範例-Visual C# 程式設計 (高慧君老師 ) 」

• 先使用「主控台應用程式」來介紹程式設計的基本概念,再使用「 Windows Form應用程式」來進行專題:製作一個 mp3 鬧鐘程式。

4

Page 5: C# 與網路資料庫程式設計

C#相關研發教材• 資訊學科中心出版之「 100 教學資源小組

研發教材手冊」教學活動設計參考範例 -Visual C# 程式設計 (李啟龍教師 ) 」

• 主控台應用程式介紹、視窗應用程式介紹

5

Page 6: C# 與網路資料庫程式設計

ACCESS相關研發教材• 資訊學科中心出版之「 98 教學資源小組研

發教材手冊」教學活動設計參考範例 - 資料庫應用與實作 (張啟中教師 ) 」

• 以「校園圖書館借閱系統」為範例,逐一引導學生認識資料庫系統及其操作方式

6

Page 7: C# 與網路資料庫程式設計

7

課程安排( 8節)• ( 1 節)建置專題所需的環境• ( 2 節)設計專題所需的資料庫、練習

SQL 語法• ( 2 節)使用 ASP.NET 程式語言操作

Access 資料庫(第一部份)• ( 2 節)使用 ASP.NET 程式語言操作

Access 資料庫(第二部分)• ( 1 節)設定安全性,完成專題

Page 8: C# 與網路資料庫程式設計

.NET Framework

8

Visual Basic C# C++ Visual J++ JScript

應用程式框架

.NET Framework類別庫

Windows 應用程式 Web 應用程式 XML Web 服務

類別庫(ADO .NET)

基本類別庫

共通語言執行環境(CLR:Common Language Runtime)

Windows 平台

.NET Framework

WinForms ASP .NET

Page 9: C# 與網路資料庫程式設計

• .NET Framework 由兩大元件所構成—共通語言執行環境( Common Language Runtime, CLR )和 .NET Framework 類別庫。

• 1. 共通語言執行環境:是 .NET 應用程式所可以共通使用的執行引擎。在 .NET Framework 上可以使用 Visual Basic、 C#、 J#、 C++、 JScript 等程式語言,而用這些程式語言所寫成的應用程式都可以在 CLR 上運行(轉成Microsoft Intermediate Language 共同中間語言),只要您把 .NET Framework 環境準備好就可以了。

• 2. .NET Framework 類別庫:支援 .NET 的各種語言可以共通使用的標準類別庫

9

Page 10: C# 與網路資料庫程式設計

工具安裝

• Visual Studio 2008 Express 內包括: Visual C#、 Visual Basic、 Visual C++、 Visual Web Developer ,需要逐一安裝,本專題需要安裝第四個— Visual Web Developer 。

10

Page 11: C# 與網路資料庫程式設計

專題摘要• 本專題將會寫出一個互動式網頁• 本專題用 Visual Studio 2008 Express 其中的 Visual Web

Developer 2008 Express 來設計互動式網頁• Visual Web Developer 2008 Express 在開發 ASP .NET

網站的時候,可以選擇用 Visual C# 或是 Visual Basic 語言,本專題使用 Visual C#

• 本專題資料庫檔案以 Access 2003 製作,以利學生和先前所學連結

11

Page 12: C# 與網路資料庫程式設計

資料庫的觀念

12

使用者例如:各單位要公告訊息的人

應用程式例如:

ASP .NET程式

資料庫管理員例如:學校的資訊組長

資料庫管理系統(DBMS)例如:Access

公佈欄資料庫

產品資料庫

各種資料庫

資料庫系統

資料表

資料庫

資料表 資料表

資料表

Page 13: C# 與網路資料庫程式設計

如果要做網路、資料庫的專題• ASP、 PHP 比較常見,資料比較多

13

Page 14: C# 與網路資料庫程式設計

ASP的寫法<%

set adocon=Server.CreateObject("ADODB.Connection")

adocon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("db.mdb")

' 有資料傳回的時候用這種寫法,「有傳回值」sqlstr = "SELECT * FROM 資料表 "

set rs = adocon.Execute(sqlstr)

' 可以直接開一個 table 當作資料的來源,「有傳回值」' set rs = adocon.Execute(" 資料表 ")

' 如果「有」資料傳回的時候' rs.Open sqlstr, ActiveConnection, CursorType, LockType, Options

' 如果「沒有」資料傳回的時候,例如新增、修改、刪除' adocon.Execute " 用來資料異動的 SQL 指令 "

%>

14

Page 15: C# 與網路資料庫程式設計

<%

Response.Write("<table border='1'>")

' 輸出屬性Response.Write("<tr>")

For j=0 to rs.Fields.Count -1

Response.Write("<td>")

Response.Write rs.Fields(j).name

Response.Write("</td>")

NEXT

Response.Write("</tr>")

' 一筆一筆輸出資料While not rs.EOF

Response.Write("<tr>")

For j=0 to rs.Fields.Count -1

Response.Write("<td>")

Response.Write rs.Fields(j).value

Response.Write("</td>")

NEXT

Response.Write("</tr>")

rs.Movenext

Wend

Response.Write("</table>")

%>

15

Page 16: C# 與網路資料庫程式設計

Response.Write("<tr>")+chr(13)+chr(10)

Response.Write("<TD width='17' bgcolor='#CCFFFF' height='17'><img border='0' src='ab.jpg' width='20' height='17'></TD>")

Response.Write("<td bgcolor='#CCFFFF'><a href=""javascript:newin(530, 500, 'view.asp?ID="&rs("ID")&"')""><font size='2'>")

temp=rs.Fields(" 活動名稱 ").value

Response.Write temp

Response.Write("</a></font></td>")+chr(13)+chr(10)

Response.Write("<td bgcolor='#CCFFFF'><font size='2'><p align='center'>")

If rs.Fields(" 活動內外 ").value=" 校外 " Then

Response.Write "<p align='center'>" & rs.Fields(" 主辦單位 ").value

Else

Response.Write "<p align='center'>" & rs.Fields(" 活動內外 ").value

End If•

16

Page 17: C# 與網路資料庫程式設計

上機實作• 建立網站—加入資料庫—新增、修改、刪

17

Page 18: C# 與網路資料庫程式設計

建立新網站

18

Page 19: C# 與網路資料庫程式設計

加入資料庫 Access檔案

19

Page 20: C# 與網路資料庫程式設計

CodeBehindusing System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

}

20

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<div>

</div>

</form>

</body>

</html>

Default.aspx.cs

Default.aspx

Page 21: C# 與網路資料庫程式設計

用工具拉出來的程式碼<asp:AccessDataSource ID="AccessDataSource1" runat="server"

DataFile="~/App_Data/db.mdb" SelectCommand="SELECT * FROM [ 公佈欄 ]">

</asp:AccessDataSource>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

DataKeyNames=" 新聞編號 " DataSourceID="AccessDataSource1">

<Columns>

<asp:BoundField DataField=" 公告處室 " HeaderText=" 公告處室 " SortExpression=" 公告處室 " />

<asp:BoundField DataField=" 公告日期 " HeaderText=" 公告日期 " SortExpression=" 公告日期 " />

<asp:BoundField DataField=" 公告主題 " HeaderText=" 公告主題 " SortExpression=" 公告主題 " />

<asp:HyperLinkField DataNavigateUrlFields=" 新聞編號 "

DataNavigateUrlFormatString="detail.aspx?id={0}" DataTextField=" 公告主題 "

HeaderText=" 公告主題 " />

</Columns>

</asp:GridView>

21程式在 default.aspx 當中

Page 22: C# 與網路資料庫程式設計

元件之間的關係

22資料來源:奚江華( 2010 )。 ASP.NET 4.0 完美入門:使用 C# 。台北市:碁峰資訊。

Page 23: C# 與網路資料庫程式設計

ADO .NET的物件模型

23資料來源:陳會安( 2008 )。 ASP.NET 3.5 :網頁製作徹底研究:使用 C# 。台北市:旗標。

Page 24: C# 與網路資料庫程式設計

手工打造也是可以的 string strDbCon, strSQL;

strDbCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data\\db.mdb") ;

OleDbConnection objCon;

OleDbCommand objCmd;

OleDbDataReader objDR;

objCon = new OleDbConnection(strDbCon);

objCon.Open();

strSQL = "Select * From 公佈欄 ";

objCmd = new OleDbCommand(strSQL, objCon);

objDR = objCmd.ExecuteReader();

if (objDR.HasRows)

{

while (objDR.Read())

{

Label1.Text += objDR[" 公告日期 "] + "-";

Label1.Text += objDR[" 公告主題 "] + "-";

Label1.Text += objDR[" 公告內容 "] + "<br>";

}

}

24

Page 25: C# 與網路資料庫程式設計

實際操作• 建立網站與公告欄畫面• 比較詳盡的「新增」請參閱教材• 「修改」「刪除」功能用內建的應該可以滿足需求

• 安全性請參閱教材

25

Page 26: C# 與網路資料庫程式設計

參考資源1. MIS2000 Lab 、周棟祥、吳進魯( 2010 )。 ASP.NET

4.0 專題實務:使用 C# 。台北市:松崗資產管理。2. 資訊教育研究室( 2010 )。 Visual C# 2008從零開始學

習手冊。台北縣:文魁行銷。3. 山田祥寬( 2007 )。學會 ASP .NET 2.0 的關鍵課程。台

北市:旗標。4. 資訊學科中心出版之「 98 教學資源小組研發教材手冊」「

教學活動設計參考範例- Visual C# 程式設計 ( 高慧君老師 ) 」

5. 資訊學科中心出版之「 100 教學資源小組研發教材手冊」教學活動設計參考範例 -Visual C# 程式設計 (李啟龍教師 ) 」

26

Page 27: C# 與網路資料庫程式設計

推薦書籍

27