基于C#窗體的數(shù)據(jù)庫應(yīng)用系統(tǒng)_第1頁
基于C#窗體的數(shù)據(jù)庫應(yīng)用系統(tǒng)_第2頁
基于C#窗體的數(shù)據(jù)庫應(yīng)用系統(tǒng)_第3頁
基于C#窗體的數(shù)據(jù)庫應(yīng)用系統(tǒng)_第4頁
基于C#窗體的數(shù)據(jù)庫應(yīng)用系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于C#窗體的數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)基礎(chǔ)與方法(4課時)第1頁,共35頁。第2頁,共35頁。內(nèi)

容簡易成績管理系統(tǒng)介紹及需求分析可枚舉類型與集合綁定及作用數(shù)據(jù)集及作用適配器及作用ADO.NET應(yīng)用系統(tǒng)體系結(jié)構(gòu)LINQ,

LINQ

to

SQL,

Entity

Framework系統(tǒng)框架實現(xiàn)(實例)第3頁,共35頁。1簡易成績管理系統(tǒng)介紹及需求分析本需求分析方法、步驟適用管理信息系統(tǒng)1.調(diào)研系統(tǒng)應(yīng)用環(huán)境模擬成績管理;課程如‘1年級1學(xué)期語文’標識,一門課程可分多個教學(xué)班級,每個班級有唯一的一個任課老師;局域網(wǎng)內(nèi)運行。第4頁,共35頁。2.獲取成績管理業(yè)務(wù)工作的工人[可能成為未來系統(tǒng)的參與者(一個系統(tǒng)用戶可以執(zhí)行多個參與者的操作)]及工作內(nèi)容成績管理員:課程管理、教學(xué)班安排、學(xué)生管理、老師管理、成績修改、打印成績表等任課教師:班級成績登記、打印成績登記表等學(xué)生:查詢本人成績等第5頁,共35頁。3.從參與者獲取處理數(shù)據(jù)資料1)成績管理員:課程信息、班級信息、老師信息、學(xué)生信息、成績信息等任課教師:相關(guān)班級成績信息等學(xué)生:本人成績信息等作為教學(xué)案例,簡化系統(tǒng):老師指任課老師和管理員,用角色區(qū)分,并作為系 統(tǒng)用戶。成績登記過程分兩步:①錄入-暫存(*);②提交。 因此,成績信息包括暫存成績和確定成績。學(xué)生不作為系統(tǒng)用戶。4.數(shù)據(jù)庫說明:①設(shè)計表TempResult的目的是為了網(wǎng)格錄入中學(xué)生名稱列顯示的方便,另外對于更復(fù)雜的成績管理系統(tǒng)設(shè)計此表可提高編程方便性和運行效率②在Teach表中增加state是為了控制成績錄入過程第6頁,共35頁。2.1可枚舉類型

實現(xiàn)了接口IEnumerable或泛型接口

IEnumerable<T>的類型是可枚舉類型

如果一個類定義了GetEnumerator()方法,其對象可作為foreach

in和LINQ中的from

in表達式第7頁,共35頁。枚舉器實現(xiàn)接口IEnumerator或泛型接口IEnumerator<T>第8頁,共35頁。第9頁,共35頁。2.2集合

僅提供枚舉功能的低級集合接口,如IEnumerable和IEnumerable<T>;

提供大小、枚舉和同步操作的集合接口ICollection和提供大小、枚舉、添加元素和移除元素等操作的泛型集合接口ICollection<T>;

提供可按照索引訪問元素的高級集合接口,如IList和IList<T>;

提供專用功能的字典集合接口,如IDictionary和IDictionary<TKey,TValue>等;提供通用功能的集合類,如ArrayList和List<T>;

提供專用功能的集合類,如Hashtable、Queue、Stack、Dictionary<TKey,TValue>、Queue<T>和Stack<T>等。3綁定及作用數(shù)據(jù)綁定,即建立控件屬性與對象屬性(或?qū)ο罅斜碇挟斍皩ο髮傩裕┲g關(guān)系,以實現(xiàn)數(shù)據(jù)同步。(M)(V)(C)ReadValueWriteValue控件屬性Binding類對象對象屬性或?qū)ο罅斜韀IList]當前對象屬性[get,set]第10頁,共35頁。綁定例子BindingSamples/BasicBinding:第11頁,共35頁。alseBindingSource類對象

BindingSource

組件有多種用途。它在Windows

窗體控件與數(shù)據(jù)源之間提供流通管理[CurrencyManager]、更改通知和其他服務(wù),簡化了窗體上的控件到數(shù)據(jù)源的綁定。通過它的DataSource

屬性將BindingSource

組件關(guān)聯(lián)到數(shù)據(jù)源。BindingSamples/ListBinding:bsbsbsbsbsbs第13頁,共35頁。4數(shù)據(jù)集及作用

System.Data命名空間提供ADO.NET體系結(jié)構(gòu)中內(nèi)存數(shù)據(jù)庫訪問功能的類。DataSet對象,簡單說是一個輕量級的內(nèi)存數(shù)據(jù)庫。

DataSet主要相關(guān)類型DataTable、DataRow、DataColumn、DataRelation及對應(yīng)的集合類

(*Collection),Constraint及子類(UniqueConstraintForeignKeyConstraint)和ConstraintCollection,等等類型化數(shù)據(jù)集與非類型化數(shù)據(jù)集。

作用:象數(shù)據(jù)庫一樣臨時保存結(jié)構(gòu)化數(shù)據(jù),提供插入、刪除、修改數(shù)據(jù)等功能;緩沖數(shù)據(jù)庫中的數(shù)據(jù),為快速高效更新數(shù)據(jù)庫數(shù)據(jù)提供基礎(chǔ)。第14頁,共35頁。數(shù)據(jù)集對象與控件綁定的對象關(guān)系圖第15頁,共35頁。DataSet對象綁定ReslutMan\ReslutMan:第17頁,共35頁。5適配器及作用

使用、、或命名空間,可訪問要與

DataSet結(jié)合使用的數(shù)據(jù)源。每個.NETFramework數(shù)據(jù)提供程序都有相應(yīng)的

DataAdapter

適配器是數(shù)據(jù)源[即數(shù)據(jù)庫]和DataSet之間的橋梁。不通過適配器訪問數(shù)據(jù)庫使用的對象關(guān)系圖第18頁,共35頁。Connection對象ReslutMan\ReslutMan:第19頁,共35頁。Command對象-ExecuteNonQuery()ReslutMan\ReslutMan:cmd.ExecuteNonQuery()Command對象-ExecuteReader()ReslutMan\ReslutMan:cmd.ExecuteReader()Command對象-ExecuteScalar()ReslutMan\ReslutMan:第22頁,共35頁。cmd.ExecuteScalar()Command對象-存儲過程調(diào)用ReslutMan\ReslutMan:第23頁,共35頁。CreateTeachTempResultCommandType.StoredProcedure通過適配器訪問數(shù)據(jù)庫使用的對象關(guān)系圖第24頁,共35頁。SqlDataAdapter-Fill與DataSet對象ReslutMan\ReslutMan:第25頁,共35頁。SqlDataAdapterDataSetad.Fill系統(tǒng)的體系結(jié)構(gòu)第26頁,共35頁。:apter對象-Up/d/查a看t生e成的SQL語句和參數(shù)ReslutMan/FoSrqlmC2om.macnsd

cmd

=

scb.GetUpdateCommand(true);String

s

=

cmd.CommandText

+

Environment.NewLine;foreach

(SqlParameter

p

in

cmd.Parameters){s

+=

"Name="

+

p.ParameterName

+

",Type="

+

p.SqlDbType.ToString()+

Environment.NewLine;}

//MessageBox.Show(s);應(yīng)該通過

VS提供的工具自動生成類型化數(shù)據(jù)集和適配器第28頁,共35頁。7.1

LINQ

(Language

Integreted

Query)

傳統(tǒng)上,針對數(shù)據(jù)的查詢都是以簡單的字符串表示,而沒有編譯時類型檢查或IntelliSense支持。此外,還必須針對以下各種數(shù)據(jù)源學(xué)習不同的查詢語言:SQL

數(shù)據(jù)庫、XML文檔、各種Web服務(wù)等。

在Visual

Studio

2008以后,可以在C#下為各種數(shù)據(jù)源編寫LINQ查詢:SQL

Server數(shù)據(jù)庫、XML

文檔、ADO.NET數(shù)據(jù)集以及支持

IEnumerable

或泛型IEnumerable<(Of<<T>)>>接口的任意對象集合。所有LINQ

查詢操作都由以下三個不同的操作組成:獲取數(shù)據(jù)源創(chuàng)建查詢執(zhí)行查詢LINQ例子,更多例子見ReslutMan/LINQSample//

The

Three

Parts

of

a

LINQ

Query:int[]

numbers

=

new

int[]

{

0,

1,

2,

3,

4,

5,

6

};//

numQuery

is

an

IEnumerable<int>var

numQuery

=from

num

in

numberswhere

(num

%

2)

==

0select

num;foreach

(int

num

in

numQuery){Console.Write("{0}

",

num);}第29頁,共35頁。第30頁,共35頁。7.2

LINQ

to

SQL

LINQ

to

SQL

是LINQ的一個組件,提供了用于將關(guān)系數(shù)據(jù)作為對象管理的運行時基礎(chǔ)結(jié)構(gòu)。

在LINQ

to

SQL中,關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模型映射到編程語言表示的對象關(guān)系模型(ORM)。

TO:當應(yīng)用程序運行時,LINQ

to

SQL將對象模型中的語言集成查詢轉(zhuǎn)換為SQL,然后將它們發(fā)送到數(shù)據(jù)庫進行執(zhí)行。

FROM:當數(shù)據(jù)庫返回結(jié)果時,LINQ

to

SQL

將它們轉(zhuǎn)換編程語言處理的對象。

在項目中添加‘LINQ

to

SQL類’項,即可產(chǎn)生與特定數(shù)據(jù)庫相關(guān)的一系列類。查看擴展名為dbml及相關(guān)文件。LINQ

to

SQL例子,見ReslutMan/LINQtoSQLon第31頁,共35頁。equalsfrom

injoin

inwhereselect第32頁,共35頁。7.3

Entity

Framework

LINQ

to

SQL和Entity

Framework都是一種包含LINQ功能的對象關(guān)系映射技術(shù)。

它們之間的本質(zhì)區(qū)別是,EF對數(shù)據(jù)庫架構(gòu)和查詢的類型實行了更好的封裝。使用EF,查詢的對象不再是完全對應(yīng)數(shù)據(jù)庫架構(gòu)的C#類,而是更高層的抽象:Entity

Data

Model。

LINQ

to

SQL是一個輕量級的ORM框架,為Microsoft

SQL

Server數(shù)據(jù)庫提供快速的應(yīng)用程序開發(fā),優(yōu)點是易于使用、簡單、高性

能。Entity

Framework的優(yōu)點是為創(chuàng)建數(shù)據(jù)庫架構(gòu)和實體類之間的映射提供了更好的靈活性,還支持第三方數(shù)據(jù)庫。

在項目中添加‘ADO.NET實體數(shù)據(jù)模型’項,即可產(chǎn)生與特定數(shù)據(jù)庫相關(guān)的一系列類。查看擴展名為edmx及相關(guān)文件。LINQ

to

SQL與Entity

FrameworkLINQ

to

SQLEntity

Framework復(fù)雜度相對不復(fù)雜相對比較復(fù)雜模型域模型(Domain

model)概念數(shù)據(jù)模型(Conceptual

data

model)數(shù)據(jù)庫服務(wù)器SQL

Server多種數(shù)據(jù)庫產(chǎn)品開發(fā)時間快速應(yīng)用開發(fā)需要較長時間,但支持更多特性繼承困難容易文件類型DBML文件EDMX,C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論