台南市成績處理系統/ 學務系統
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.0net 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
•CC++C#
–Why C# ? CC++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