




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、c# c# c# 程序設(shè)計(jì)大學(xué)教程程序設(shè)計(jì)大學(xué)教程 數(shù)據(jù)庫程序開發(fā)數(shù)據(jù)庫程序開發(fā) c# c# c# 2 數(shù)據(jù)庫程序開發(fā)數(shù)據(jù)庫程序開發(fā) ado.net組件的典型特點(diǎn)是: 具有斷開式數(shù)據(jù)結(jié)構(gòu)。具有斷開式數(shù)據(jù)結(jié)構(gòu)。 能夠與能夠與xmlxml緊密集成。緊密集成。 具有能夠組合來自多個(gè)不同數(shù)據(jù)源的數(shù)據(jù)的具有能夠組合來自多個(gè)不同數(shù)據(jù)源的數(shù)據(jù)的 通用數(shù)據(jù)表示形式。通用數(shù)據(jù)表示形式。 具有為與數(shù)據(jù)庫交互而優(yōu)化的功能。具有為與數(shù)據(jù)庫交互而優(yōu)化的功能。 ado.net組件是數(shù)據(jù)庫編程的基礎(chǔ),掌握 ado.net就等于掌握了數(shù)據(jù)庫編程的核心。 c# c# c# 3 11.1 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) 數(shù)
2、據(jù)庫提供了一種把相關(guān)信息集合在一起的 方法,它是一個(gè)數(shù)據(jù)的有機(jī)集合,它可以使我們 在某個(gè)集中的地方存儲(chǔ)和維護(hù)這些信息。 數(shù)據(jù)庫系統(tǒng)則主要由數(shù)據(jù)庫、數(shù)據(jù)庫管理系 統(tǒng)和數(shù)據(jù)庫應(yīng)用程序三大部分組成。 c# c# c# 4 11.1 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫數(shù)據(jù)庫: :按一定結(jié)構(gòu)組織在一起的相關(guān)數(shù)據(jù)的集合 數(shù)據(jù)庫管理系統(tǒng)(數(shù)據(jù)庫管理系統(tǒng)(dbmsdbms): :它是專門負(fù)責(zé)組織和管 理數(shù)據(jù)信息的軟件 數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序: :它使我們能夠獲取、顯示和更新 由dbms存儲(chǔ)的數(shù)據(jù) 數(shù)據(jù)庫的核心是數(shù)據(jù),其具體的組織形式與 數(shù)據(jù)庫管理系統(tǒng)緊密關(guān)聯(lián),而表現(xiàn)形式又取決于 數(shù)據(jù)庫應(yīng)用程序
3、。 c# c# c# 5 11.1 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) 11.1.1 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng) 11.1.2 數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序 c# c# c# 6 11.1 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)(dbms)是用于描述、管理 和維護(hù)數(shù)據(jù)庫的程序系統(tǒng),是數(shù)據(jù)庫系統(tǒng)的核心 組成部分。 其主要功能有: 描述數(shù)據(jù)庫描述數(shù)據(jù)庫 管理數(shù)據(jù)庫管理數(shù)據(jù)庫 維護(hù)數(shù)據(jù)庫維護(hù)數(shù)據(jù)庫 數(shù)據(jù)通信數(shù)據(jù)通信 c# c# c# 7 11.1 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) dbmsdbms主要有四種類型:主要有四種類型: 文件管理系統(tǒng)文件管理系統(tǒng) 層次數(shù)據(jù)庫系統(tǒng)層次數(shù)據(jù)
4、庫系統(tǒng) 網(wǎng)狀數(shù)據(jù)庫系統(tǒng)網(wǎng)狀數(shù)據(jù)庫系統(tǒng) 關(guān)系數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)庫系統(tǒng)。 c# c# c# 8 11.1 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) 關(guān)系數(shù)據(jù)庫中包括:關(guān)系數(shù)據(jù)庫中包括: 表(表(tabletable) 字段(字段(fieldfield) 記錄(記錄(recordrecord) 索引(索引(indexindex) c# c# c# 9 11.1.2 數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫應(yīng)用程序 結(jié)構(gòu)化查詢語言(structure query language,簡稱sql)是基于關(guān)系模型的數(shù)據(jù)庫 查詢語言,它是一種非過程化的程序語言。 如:select 圖書名稱,出版時(shí)間 from 圖書 where 出
5、版社=機(jī)械工業(yè)出版社 含義為從book數(shù)據(jù)庫的圖書表中將出版社 是機(jī)械工業(yè)出版社的所有圖書選出來,并列出 它們的圖書名稱和出版時(shí)間。 c# c# c# 10 11.2 sql基礎(chǔ)基礎(chǔ) sql按用途分為以下三類: dml dml(data manipulation language 數(shù)據(jù)操 作語言) 用于查詢、修改或者刪除數(shù)據(jù) ddl ddl(data definition language 數(shù)據(jù)定義 語言) 用于定義數(shù)據(jù)的結(jié)構(gòu),例如創(chuàng)建數(shù)據(jù)庫 中的表、視圖、索引等 dcl dcl(data control language 數(shù)據(jù)控制語言) 用來授予或收回訪問數(shù)據(jù)庫的某種特權(quán)、控制數(shù) 據(jù)操縱事務(wù)
6、的發(fā)生時(shí)間及效果、對(duì)數(shù)據(jù)庫進(jìn)行監(jiān) 視 c# c# c# 11 11.2 數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng) 11.2.1 sqlsql的歷史的歷史 11.2.2 sqlsql的特點(diǎn)的特點(diǎn) 11.2.3 3 sqlsql的基本語法的基本語法 c# c# c# 12 11.2.1 sql的歷史的歷史 70年代初,e.e.codd首先提出了關(guān)系模型 70年代中期,ibm公司研制了sql語言 1979年oracle公司首先提供商用的sql, ibm公司在db2和sql/ds數(shù)據(jù)庫系統(tǒng)中也實(shí)現(xiàn)了 sql。 1986年10月,美國ansi采用sql作為關(guān)系數(shù) 據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言(ansi x3. 1
7、35-1986), 后為國際標(biāo)準(zhǔn)化組織(iso)采納為國際標(biāo)準(zhǔn)。 c# c# c# 13 11.2.1 sql的歷史的歷史 1989年,美國ansi采納在ansi x3.135- 1989報(bào)告中定義的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的sql標(biāo) 準(zhǔn)語言,稱為ansi sql 89, 該標(biāo)準(zhǔn)替代ansi x3.135-1986版本。 目前,所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都 支持并遵守ansi sql89標(biāo)準(zhǔn)。 c# c# c# 14 11.2.2 sql的特點(diǎn)的特點(diǎn) sql是非過程化語言 sql是統(tǒng)一的語言 sql是所有關(guān)系數(shù)據(jù)庫的 公共語言 c# c# c# 15 11.2.3 sql的基本語法的基本語法 c#
8、 c# c# 16 11.2.3 sql的基本語法的基本語法 c# c# c# 17 11.2.3 sql的基本語法的基本語法 c# c# c# 18 11.3 數(shù)據(jù)庫訪問技術(shù)的發(fā)展數(shù)據(jù)庫訪問技術(shù)的發(fā)展 數(shù)據(jù)源數(shù)據(jù)源(data source) 數(shù)據(jù)源是指本地和 遠(yuǎn)程的物理數(shù)據(jù)庫,或者是xml文件。 數(shù)據(jù)提供者數(shù)據(jù)提供者(data provider) 數(shù)據(jù)提供者 將如何實(shí)現(xiàn)與物理數(shù)據(jù)庫或者xml文件連接的復(fù)雜 過程細(xì)節(jié)對(duì)用戶隱藏,展現(xiàn)在用戶面前的只是簡單 地使用該部件輕松地完成連接到一個(gè)或多個(gè)數(shù)據(jù)源、 傳送命令,以及將數(shù)據(jù)傳送到數(shù)據(jù)集(dataset) 中。 數(shù)據(jù)集數(shù)據(jù)集(dataset) 數(shù)據(jù)
9、集對(duì)象用來表示來 自一個(gè)或多個(gè)數(shù)據(jù)源并保存在內(nèi)存中的表和關(guān)系。 c# c# c# 19 11.3 數(shù)據(jù)庫訪問技術(shù)的發(fā)展數(shù)據(jù)庫訪問技術(shù)的發(fā)展 11.3.1 odbcodbc 11.3.2 daodao和和rdordo 11.3.3 ole db3 ole db 11.3.4 ado4 ado c# c# c# 20 11.3.1 odbc odbc由microsoft與其他公司在20世紀(jì)90年代 早期聯(lián)合開發(fā),是第一個(gè)使用sql標(biāo)準(zhǔn)訪問不同關(guān) 系數(shù)據(jù)庫的數(shù)據(jù)訪問技術(shù)。odbc提供了開發(fā)人可以 用于任何數(shù)據(jù)庫系統(tǒng)的公共函數(shù)集,從而,程序開 發(fā)人員使用odbc,能夠通過單一的命令操縱不同的 數(shù)據(jù)庫,
10、而開發(fā)人員需要做的僅僅只是針對(duì)不同的 應(yīng)用加入相應(yīng)的odbc驅(qū)動(dòng)。 c# c# c# 21 11.3.1 odbc c# c# c# 22 11.3.2dao和和 rdo dao是第一個(gè)基于對(duì)象的接口,用visual basic 語言編寫。它封裝了jet功能(jet是access數(shù)據(jù)庫 的引擎),并允許創(chuàng)建數(shù)據(jù)綁定(也叫data-aware) 控件。但是,由于在使用dao訪問不同的關(guān)系型數(shù)據(jù) 庫的時(shí)候,jet引擎不得不在dao和odbc之間進(jìn)行命 令的轉(zhuǎn)化,將導(dǎo)致性能的下降。 c# c# c# 23 11.3.2dao和和 rdo rdo(遠(yuǎn)程數(shù)據(jù)對(duì)象)是一種緊湊、輕量級(jí) 的與odbc的接口,
11、是在幾年前推出的。它模仿 了dao對(duì)象模型,并且使開發(fā)人員獲得odbc低級(jí) 功能的方式變得更加容易。它在對(duì)sql server 的數(shù)據(jù)訪問中非常流行,但其能力僅限于獲取 jet或isam數(shù)據(jù)。另外,它也只能通過現(xiàn)有的 odbc驅(qū)動(dòng)程序訪問關(guān)系型數(shù)據(jù)庫。 c# c# c# 24 11.3.3ole db ole db是一個(gè)全面的com(component object model)接口集,這些接口可用于訪問多種數(shù)據(jù)存 儲(chǔ)區(qū)中的多種多樣的數(shù)據(jù)。 ole db的設(shè)計(jì)目的是:可以處理任何類型的信息, c# c# c# 25 11.3.4ado (activex data object) c# c# c
12、# 26 11.4 ado.net 11.4.1 ado.netado.net簡介簡介 11.4.2 ado.netado.net體系結(jié)構(gòu)體系結(jié)構(gòu) 11.4.3 3 數(shù)據(jù)集的操作數(shù)據(jù)集的操作 c# c# c# 27 11.4.1 ado.net簡介 c# c# c# 28 11.4.2 ado.net體系結(jié)構(gòu) c# c# c# 29 11.4.2 ado.net體系結(jié)構(gòu) 1 connectionconnection對(duì)象對(duì)象 2 2 commandcommand對(duì)象對(duì)象 3 datareader3 datareader對(duì)象對(duì)象 4 dataadapter4 dataadapter對(duì)象對(duì)象 5 c
13、ommandbuilder5 commandbuilder對(duì)象對(duì)象 6 dataset6 dataset對(duì)象對(duì)象 c# c# c# 30 11.4.2 ado.net體系結(jié)構(gòu) 1. connectionconnection對(duì)象對(duì)象 在ado.net中,通過在連接字符串中提供必 要的身份驗(yàn)證信息,使用connection對(duì)象連接 到特定的數(shù)據(jù)源,該對(duì)象主要保存了有關(guān)數(shù)據(jù) 庫服務(wù)器的信息,用于打開和關(guān)閉與數(shù)據(jù)庫的 連接。 使用完后,要把連接關(guān)閉,釋放占有的資 源。 using語句修飾連接對(duì)象時(shí),在離開其作用 范圍時(shí)會(huì)自動(dòng)釋放對(duì)象。 c# c# c# 31 11.4.2 ado.net體系結(jié)構(gòu) .n
14、et framework數(shù)據(jù)提供程序包含的connection 對(duì)象提供了如下四種connection對(duì)象: 1) ole db .net framework數(shù)據(jù)提供程序中的 oledbconnection對(duì)象。 2) sql server .net framework數(shù)據(jù)提供程序中 的sqlconnection對(duì)象。 c# c# c# 32 11.4.2 ado.net體系結(jié)構(gòu) 3) odbc .net framework 數(shù)據(jù)提供程序中的 odbcconnection對(duì)象。 4) oracle .net framework數(shù)據(jù)提供程序中的 oracleconnection對(duì)象。 c# c#
15、 c# 33 11.4.2 ado.net體系結(jié)構(gòu) .net framework提供了以下command對(duì)象: ole db .net framework數(shù)據(jù)提供程序包括一個(gè) oledbcommand對(duì)象; sql server .net framework數(shù)據(jù)提供程序包括 一個(gè)sqlcommand對(duì)象; odbc .net framework數(shù)據(jù)提供程序包括一個(gè) odbccommand對(duì)象; oracle .net framework數(shù)據(jù)提供程序包括一個(gè) oraclecommand對(duì)象。 2. commandcommand對(duì)象對(duì)象 c# c# c# 34 11.4.2 ado.net體系結(jié)構(gòu)
16、 c# c# c# 35 11.4.2 ado.net體系結(jié)構(gòu) sqlcommand提供的對(duì)sql server數(shù)據(jù)庫執(zhí)行命令 的重要方法有四種: executereader()方法:執(zhí)行查詢,返回查詢結(jié)果 的命令。為了提高性能,使用transact-sql sp_executesql系統(tǒng)存儲(chǔ)過程調(diào)用命令。 executenonquery()方法:執(zhí)行transact-sql insert、delete、update及set語句等命令,返回 值為受影響的行數(shù)。 多用于執(zhí)行sql語句。 c# c# c# 36 11.4.2 ado.net體系結(jié)構(gòu) executescalar()方法:執(zhí)行查詢,用
17、于從數(shù)據(jù)庫中 檢索單個(gè)值(例如一個(gè)聚合值)。只返回查詢所返回 的結(jié)果集中第一行的第一列,而忽略其他列或行。系 統(tǒng)開銷很小,效率較高。 executexmlreader()方法:將commandtext發(fā)送到 connection執(zhí)行,并生成一個(gè)xmlreader 對(duì)象。 c# c# c# 37 11.4.2 ado.net體系結(jié)構(gòu) ado.net的datareader對(duì)象可以從數(shù)據(jù)庫中檢索 只讀、只進(jìn)的數(shù)據(jù)流,實(shí)現(xiàn)對(duì)數(shù)據(jù)源中的數(shù)據(jù)高 速、只向前的訪問。 查詢結(jié)果在查詢執(zhí)行時(shí)返回, 并存儲(chǔ)在客戶端的網(wǎng)絡(luò)緩沖區(qū)(默認(rèn)每次只存儲(chǔ) 一行數(shù)據(jù)),直到調(diào)用read方法讀取。 datareader對(duì)象依賴連
18、接,使用時(shí)必須保持?jǐn)?shù) 據(jù)庫連接打開。 創(chuàng)建sqldatareader對(duì)象的方法: sqldatareader dr=mysqlcommand.executereader(); . datareaderdatareader對(duì)象對(duì)象 c# c# c# 38 11.4.2 ado.net體系結(jié)構(gòu) . dataadapterdataadapter對(duì)象對(duì)象 dataadapter通過使用command和connection對(duì) 象在數(shù)據(jù)源和數(shù)據(jù)集(dataset)兩者之間構(gòu)成一 座橋梁。即結(jié)合dataset使用,使得dataset“連 接”到數(shù)據(jù)源中,以便檢索和保存數(shù)據(jù)。 本質(zhì)上dataadapter是容
19、器,它含有4個(gè)預(yù)先配 置好的command實(shí)例,即selectcommand、 insertcommand、deletecommand和updatecommand。 常用方法:fill用來更改dataset中的數(shù)據(jù)以 匹配數(shù)據(jù)源中的數(shù)據(jù) update用來更改數(shù)據(jù)源中的數(shù)據(jù)以 匹配dataset中的數(shù)據(jù) c# c# c# 39 11.4.2 ado.net體系結(jié)構(gòu) . commandbuildercommandbuilder對(duì)象對(duì)象 dataadapte不會(huì)自動(dòng)生成為了使對(duì)dataset所 作的更改和相關(guān)聯(lián)的數(shù)據(jù)源協(xié)調(diào)起來所必須的sql 語句,但是,如果設(shè)置了dataadapter的 selectcommand屬性(selectcommand還必須至少 返回一個(gè)主鍵列或惟一的列。如果什么都沒有返 回,就會(huì)產(chǎn)生invalidoperationexception異常, 不生成命令),就可以創(chuàng)建commandbuilder對(duì)象 來自動(dòng)生成sql語句進(jìn)行單表更新,即動(dòng)態(tài)創(chuàng)建 delete、insert或update執(zhí)行命令 c# c# c# 40 如果在檢索元數(shù)據(jù)后更改了selectcommand (包括其connection、commandtimeout、 transaction等屬性),則需要調(diào)用 refreshschema方法。 一次只能將一個(gè)dataad
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遠(yuǎn)程教育與血透患者的自我管理培訓(xùn)
- 增強(qiáng)國際會(huì)計(jì)準(zhǔn)則的理解與應(yīng)用計(jì)劃
- 2025集中式儲(chǔ)能變流器 PCS 技術(shù)規(guī)范
- 酒標(biāo)設(shè)計(jì)中的文化元素與傳播效果
- 預(yù)算管理中的成本控制方法與實(shí)踐
- 團(tuán)的基本知識(shí)理論試題題庫及答案
- 江西2024年12月江西省贛州市信豐生態(tài)環(huán)境局招考2名臨時(shí)工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 金融投資中的財(cái)務(wù)管理原理與實(shí)踐應(yīng)用
- 跨境電商新模式下的品牌建設(shè)
- 跨國企業(yè)保密管理策略的核心要素與實(shí)踐
- 2025年海域使用權(quán)租賃合同
- 四年級(jí)希望杯歷年數(shù)學(xué)競(jìng)賽試題與答案1-13屆+奧數(shù)分類專項(xiàng)練習(xí)集等
- 《走近世界民間美術(shù)》 課件 2024-2025學(xué)年人美版(2024)初中美術(shù)七年級(jí)下冊(cè)
- (2025春)人教版三年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教案
- 河南2025年02月鄭州市公安機(jī)關(guān)公開招考1200名警務(wù)輔助人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年江蘇省高職單招《職測(cè)》高頻必練考試題庫400題(含答案)
- 2025云南紅河州個(gè)舊市大紅屯糧食購銷限公司招聘及人員高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- X證書失智老年人照護(hù)講解
- 河北單招考試三類職業(yè)適應(yīng)性測(cè)試考試題與答案
- 生產(chǎn)礦井儲(chǔ)量管理規(guī)程
- 實(shí)木家具工藝標(biāo)準(zhǔn)(全流程)
評(píng)論
0/150
提交評(píng)論