c# 與網路資料庫程式設計
DESCRIPTION
C# 與網路資料庫程式設計. 羅東高中邱柏翰 [email protected]. 大綱. 本專題結合網頁設計、資料庫、 C# 程式語言等資訊技術 希望學生能做出一個線上資料庫網站 為了與校園生活結合,本專題的主題為 — 校園公佈欄系統。. 歡迎使用學科中心教材. C# 相關研發教材. 資訊學科中心出版之「 98 教學資源小組研發教材手冊」「教學活動設計參考範例- Visual C# 程式設計 ( 高慧君 老師 ) 」 先使用「主控台應用程式」來介紹程式設計的基本概念,再使用「 Windows Form 應用程式」來進行專題:製作一個 mp3 鬧鐘程式。. - PowerPoint PPT PresentationTRANSCRIPT
2
大綱• 本專題結合網頁設計、資料庫、 C# 程式語
言等資訊技術• 希望學生能做出一個線上資料庫網站• 為了與校園生活結合,本專題的主題為—
校園公佈欄系統。
歡迎使用學科中心教材
3
C#相關研發教材• 資訊學科中心出版之「 98 教學資源小組研
發教材手冊」「教學活動設計參考範例-Visual C# 程式設計 (高慧君老師 ) 」
• 先使用「主控台應用程式」來介紹程式設計的基本概念,再使用「 Windows Form應用程式」來進行專題:製作一個 mp3 鬧鐘程式。
4
C#相關研發教材• 資訊學科中心出版之「 100 教學資源小組
研發教材手冊」教學活動設計參考範例 -Visual C# 程式設計 (李啟龍教師 ) 」
• 主控台應用程式介紹、視窗應用程式介紹
5
ACCESS相關研發教材• 資訊學科中心出版之「 98 教學資源小組研
發教材手冊」教學活動設計參考範例 - 資料庫應用與實作 (張啟中教師 ) 」
• 以「校園圖書館借閱系統」為範例,逐一引導學生認識資料庫系統及其操作方式
6
7
課程安排( 8節)• ( 1 節)建置專題所需的環境• ( 2 節)設計專題所需的資料庫、練習
SQL 語法• ( 2 節)使用 ASP.NET 程式語言操作
Access 資料庫(第一部份)• ( 2 節)使用 ASP.NET 程式語言操作
Access 資料庫(第二部分)• ( 1 節)設定安全性,完成專題
.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
• .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
工具安裝
• Visual Studio 2008 Express 內包括: Visual C#、 Visual Basic、 Visual C++、 Visual Web Developer ,需要逐一安裝,本專題需要安裝第四個— Visual Web Developer 。
10
專題摘要• 本專題將會寫出一個互動式網頁• 本專題用 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
資料庫的觀念
12
使用者例如:各單位要公告訊息的人
應用程式例如:
ASP .NET程式
資料庫管理員例如:學校的資訊組長
資料庫管理系統(DBMS)例如:Access
公佈欄資料庫
產品資料庫
各種資料庫
資料庫系統
資料表
資料庫
資料表 資料表
資料表
如果要做網路、資料庫的專題• ASP、 PHP 比較常見,資料比較多
13
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
<%
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
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
上機實作• 建立網站—加入資料庫—新增、修改、刪
除
17
建立新網站
18
加入資料庫 Access檔案
19
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
用工具拉出來的程式碼<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 當中
元件之間的關係
22資料來源:奚江華( 2010 )。 ASP.NET 4.0 完美入門:使用 C# 。台北市:碁峰資訊。
ADO .NET的物件模型
23資料來源:陳會安( 2008 )。 ASP.NET 3.5 :網頁製作徹底研究:使用 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
實際操作• 建立網站與公告欄畫面• 比較詳盡的「新增」請參閱教材• 「修改」「刪除」功能用內建的應該可以滿足需求
• 安全性請參閱教材
25
參考資源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
推薦書籍
27