台南市成績處理系統/ 學務系統

Download Report

Transcript 台南市成績處理系統/ 學務系統

Dotnet 視窗程式開發
初階課程
主講人 : 高誌健老師
台南市立和順國中資訊組長
台南市教育網路中心-程式設計師
台南市成績系統 / 訓導系統設計
Outline
• Dotnet概念
– Dotnet的現在與未來
– Web form與window form
• Dotnet環境建立
– .net framework
– 開發工具
• Window form入門
–
–
–
–
–
C#語法
元件的使用
表單互動
Ado.net與資料庫入門
程式的部署
• 學習經驗建議
Dotnet概念
2000年提出
.NET Framework 1.0 2002正式釋出
.NET 願景
隨時、隨地透過任何裝置傳達與取得資訊
連接資訊、個人、系統與各式設備的軟體環境,
亦是 XML 與 Web Services 運行基礎平台
Tools
XML Web Services
Authentication
Subscriber DB
Personalization
SMS
MMS
Billing
Voice Calls
Data Calls
etc…
User Experiences & Solutions
Clients
Dotnet的現在與未來
Web-from和Window-form
• Web form
– 一種網頁程式,可與使用者互動,必需架設在web
server
– 過去:asp,php,jsp…等
– 現在:asp.net,更安全,功能更強大(demo)
• Window form
– 視窗程式,安裝在本機電腦
– 過去:viusal basic,foxpro…等
– 現在:開發更快速,使用者更容易學習(demo)
差異
•Web form
–優點:不需要安裝任何軟體,只要有瀏覽器即可
–缺點:必須仰賴web server,需要透過網路傳輸
•Window form
–優點:執行快速,不需仰賴網路,支援滑鼠,鍵盤
控制
–缺點:需要安裝該軟體
Dotnet環境的建立
• Windows2003以後內建.net執行環境
• 其他windows(98,me,2000,xp…)安裝net_framework套件
–版本從.net framework1.0net framework1.1
–net framework2.0 beta2(x86,64bit…)
–下載網址
http://msdn.microsoft.com/netframework/downloads/
updates/default.aspx
–下載類型有2種
•.NET Framework Version x.x Redistributable
–.net CLR run-time (可以執行.net程式)
•.NET Framework Version x.x Software
Development Kit (SDK) (如果要開發)
• Open source
– Microsoft
• Share Source Common Language Infrastructure
(SSCLI )
• for FreeBSD、Windows、Mac OS X
– Novell
• Mono project
• for Linux, Mac OS X ,BSD ,Sun Solaris ,Microsoft
Windows
– DotGNU Portable.NET project
• Windows, Solaris, NetBSD, FreeBSD, and MacOS
X
.NET Framework組成要件
VB
C++
C#
J#
…
Common Language Specification
ASP.NET
Windows Forms
ADO.NET and XML
Base Class Library
Common Language Runtime
Windows
COM+ Services
支援
.NET Language
程式語言
ADO.NET
ASP.NET
Common
Runtime
提供伺服器端
CLS
取代
ADO
為 ISO
成為資料存取標準
國際標準
Web Forms 控制
項與
Web
Services
具備離線資料集
符合
Common
Language
(Dataset) 能力
管理執行於其中之程式碼
Specification
HTML 與程式碼邏輯
程式語言即可於
切割
能夠處理關聯式資料庫與
XML
安全
CLR
內執行
編譯過之程式碼
交換資料
易於利用
易於部署 XML
Microsoft
提供
:
部署簡易
Mono Project 提供 Linux 版本
Visual Basic, (state
C++, C#, J#
自動狀態管理機制
management)
協力廠商提供 :
與 ASP
向前相容
APL,
COBOL, Pascal /
Delphi , Eiffel, Haskell, ML,
控制項自動感應瀏覽器,輸出對
Perl, Python,
等之Oberon,
HTML, DHTML,
WML
Scheme, Smalltalk,
Objective CAML, …
VS.Net開發工具
VS.Net開發工具
•Vs.net2002.net framework1.0
•Vs.net2003.net framework1.1
•Vs.net2005.net framework2.0(大改版)
Window form入門
•新增專案,c#,windows應用程式
•認識表單,基礎控制項
•認識操作環境
•執行測試
C# overview
•C# pronounced C sharp
•CC++C#
–Why C# ? CC++C++++ ? C#
•Just for .net framework
•物件導向語言(類似java)
– 程式寫法觀摩
– 型態介紹練習
– 決策迴圈介紹練習
– 陣列介紹練習
型別參考
Structure of C#
Window form 控制項
• 電腦配備專案練習
– Radiobutton,checkbox,groupbox,textbox
• 調色盤專案練習
– Label,scrollbar,color變化
• 圖片預覽器
– Listbox,splitter,picturebox,openfiledialog,鍵盤
事件,notifyicon,contextmenu
物件觀念
•物件(object)
–屬性(property)
•表現該物件的特徵,例如:車子有4顆輪胎,4顆輪胎即為車子的
屬性
–方法(method)
•該物件具備的動作,例如:車子可以加速,加速此動作即為車子
的方法
–事件(event)
•該物件被觸發之後所會發生的事,例如:車子加速之後會往前
衝,”往前衝”就是車子加速之後出發的事件
–事件與方法的差異
•方法是可預期的,事件不可預期
Why ADO.NET?
ADO vs. ADO.NET
•
ADO
•
– Connected access
– Physical data model
– RecordSet based data
– RecordSet is ‘one’ table
•
> 1 table requires a database
JOIN
•
Data is “flattened”: lose
relationships
– COM/COM+ data types
– Data via COM marshalling
– Blocked by firewalls (DCOM,
binary)
ADO.NET
– Disconnected access
– Logical data model
– The DataSet based data
– DataSet is multi-table
• > 1 table or source does not
require a JOIN
• Relationships remain:
navigation is relational
– XML schema Data types
– No data type conversions required
– XML is plaintext: ‘Firewall friendly’
ADO.NET
• 簡易成績處理專案練習
– Vs.net自動化存取資料庫
– 手動存取資料庫
• Dataadapter
• Datareader
• 兩種存取差異
• Dataadapter:適合大量處理,修改資料用
• DataReader:存取快速,適合展示資料
DataAdapter
•建立connection
•設定sql語法(command,以便告知程式要處
理的資料
–此步驟如果用vs.net,會自動建立
•dataAdapter將資料fill到dataset
•程式可對dataset做任何取用
••
•
DataSet 的結構
使用
或
Tables["表格名稱"]
透過欄位號碼或欄位名稱來存取
每一個
DataRow
(每一筆記錄)
中包含了多個欄位
DataRow
的資料
DataTable
可以包含多筆資料列
(Row),組成
Rows
集合
使用Tables[表格號碼]
Rows
Rows[列號碼]
集合中的每一筆資料記錄都是一個
DataSet
中的表格都是一個
來引用
Tables
中的任何一個表格。
DataTable
DataRow
物件 物件
DataSet
可以包含多個表格
(Table),組成
來引用
Tables 中的任何一個表格。
(Rows.Count
可以取得資料總筆數)
Tables 集合 (Tables.Count 可以取得表格數目)
DataSet
Tables[0]
DataTable
Tables[1]
Tables[2] DataRow
Rows[0]
Tables[3] Rows[1]
: 1 Rows[2] 2
Tables
0
3
: 性別 Rows
姓名
電話
血型
:
: 男
王小明
AB
: (04)2222-2222
:
:
DataRow: row = ds.Tables[0].Rows[3];
:
string name = row[0];
string phone = row["電話"];
DataReader
•建立connection
•設定sql語法(command,以便告知程式要處
理的資料
•Connection要open
•執行cmd (executeReader或
executeNonquery)
•Connection要close
•程式可用回圈自dataReader存取出資料
ADO.NET
•
ADO .NET 資料存取模型
– 資料庫連線 (Connection)
• SqlConnection 與 OleDbConnection
– 執行 SQL 語法 (Commands)
• SqlCommand 與 OleDbCommand
–
–
–
ExecuteNonQuery (不傳回資料列)
ExecuteScalar (傳回單一列資料)
ExecuteReader (傳回多列資料)
– 取得資料
• DataReader
• DataAdapter 與 DataSet
專案部署
•Xcopy
–Dotnet打破過去dll缺點,可以直接copy部署
•如果程式製作過程需要參考其他外掛元件,
例如crystal report,可以用部屬精靈製作
安裝程式
•專題部署練習
課後補充-物件導向
•C#的精隨在於物件導向
•封裝,繼承,多型,覆載
•利用物件導向寫程式,才能突顯C#的優點
•利用類別庫製作元件(dll),可重複使用與
達到物件導向精神
課後補充-更多內容
•window form進階
• datagrid活用設計
•與com元件之互動(ex flash,ie)
•Crystal report報表
•物件導向元件製作
•視窗程式之美工設計
•含Crystal report的程式部署
初階課程end