C#數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)課件(PPT 24頁(yè))_第1頁(yè)
C#數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)課件(PPT 24頁(yè))_第2頁(yè)
C#數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)課件(PPT 24頁(yè))_第3頁(yè)
C#數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)課件(PPT 24頁(yè))_第4頁(yè)
C#數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)課件(PPT 24頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件學(xué)院 夏克付數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)第六講第1頁(yè),共24頁(yè)。接口是指前臺(tái)程序和后臺(tái)數(shù)據(jù)庫(kù)的連接部分。接口的概念12主要的數(shù)據(jù)庫(kù)訪問(wèn)接口ODBC(Open DataBase Connectivity,開放式數(shù)據(jù)庫(kù)互連):只能訪問(wèn)關(guān)系型數(shù)據(jù)。OLE DB(Object Linking and Embedding DataBase,數(shù)據(jù)庫(kù)對(duì)象的鏈接與嵌入):系統(tǒng)級(jí)編程接口,可以訪問(wèn)所有類型的數(shù)據(jù) 。一、數(shù)據(jù)庫(kù)訪問(wèn)接口第2頁(yè),共24頁(yè)。ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對(duì)象):應(yīng)用程序級(jí)編程接口,可以訪問(wèn)所有類型的數(shù)據(jù)。ADO.NET:ADO的升級(jí)版本,是.NET平臺(tái)采

2、用的數(shù)據(jù)庫(kù)訪問(wèn)接口。一、數(shù)據(jù)庫(kù)訪問(wèn)接口第3頁(yè),共24頁(yè)。ADO.NET是一些.NET Framework類庫(kù)中與數(shù)據(jù)庫(kù)訪問(wèn)有關(guān)的類的集合,它是一種可以使程序員快速、高效地利用.NET開發(fā)出數(shù)據(jù)庫(kù)應(yīng)用程序的技術(shù)。其體系結(jié)構(gòu)如下:ADO.NET的體系結(jié)構(gòu)1二、ADO.NET概述第4頁(yè),共24頁(yè)。從ADO.NET的體系結(jié)構(gòu)可以看出,ADO.NET包括兩大部分:數(shù)據(jù)提供者和DataSet(數(shù)據(jù)集)。2數(shù)據(jù)提供者數(shù)據(jù)提供者也稱為.NET Framework 數(shù)據(jù)提供程序,包括一系列用于連接到數(shù)據(jù)庫(kù)、執(zhí)行命令和檢索結(jié)果等類。(1)核心對(duì)象二、ADO.NET概述第5頁(yè),共24頁(yè)。二、ADO.NET概述對(duì)象名

3、稱功能描述Connection數(shù)據(jù)庫(kù)連接對(duì)象,建立與數(shù)據(jù)庫(kù)的連接Command命令對(duì)象,執(zhí)行數(shù)據(jù)訪問(wèn)命令的對(duì)象DataReader數(shù)據(jù)讀取器對(duì)象,讀取數(shù)據(jù)源中只讀、向前的數(shù)據(jù)DataAdapter數(shù)據(jù)適配器對(duì)象,讀取數(shù)據(jù)源數(shù)據(jù)填充數(shù)據(jù)集對(duì)象DataSet第6頁(yè),共24頁(yè)。(2)數(shù)據(jù)提供程序種類二、ADO.NET概述數(shù)據(jù)提供程序命名空間核心對(duì)象說(shuō)明用于 SQL Server 的數(shù)據(jù)提供程序System.Data.SqlClientSqlConnectionSqlCommandSqlDataReaderSqlDataAdapter提供對(duì) Microsoft SQL Server 7.0 或更高版本

4、中數(shù)據(jù)的訪問(wèn)。用于OLE DB的數(shù)據(jù)提供程序System.Data.OleDbOleDbConnectionOleDbCommandOleDbDataReaderOleDbDataAdapter提供對(duì)使用OLE DB 公開的數(shù)據(jù)源中數(shù)據(jù)的訪問(wèn)用于 ODBC 的數(shù)據(jù)提供程序System.Data.OdbcOdbcConnectionOdbcCommandOdbcDataReaderOdbcDataAdapter提供對(duì)使用 ODBC 公開的數(shù)據(jù)源中數(shù)據(jù)的訪問(wèn)用于 Oracle 的數(shù)據(jù)提供程序System.Data.OracleClientOracleConnectionOracleCommandO

5、racleDataReaderOracleDataAdapter適用于 Oracle 數(shù)據(jù)源第7頁(yè),共24頁(yè)。DataSet對(duì)象又稱為數(shù)據(jù)集對(duì)象,是支持ADO.NET的斷開式、分布式數(shù)據(jù)方案的核心對(duì)象,是ADO.NET技術(shù)的精髓。DataSet是數(shù)據(jù)的內(nèi)存駐留表示形式,可以將其理解為內(nèi)存中的數(shù)據(jù)庫(kù)。DataSet對(duì)象包含一個(gè)或多個(gè)DataTable(數(shù)據(jù)表)對(duì)象的集合,這些對(duì)象由數(shù)據(jù)行(DataRow)和數(shù)據(jù)列(DataColumn),以及有關(guān)DataTable對(duì)象中數(shù)據(jù)的主鍵、外鍵、約束和關(guān)系信息組成。其結(jié)構(gòu)如下:DataSet 對(duì)象二、ADO.NET概述33第8頁(yè),共24頁(yè)。二、ADO.N

6、ET概述第9頁(yè),共24頁(yè)。特點(diǎn):客戶機(jī)一直保持和數(shù)據(jù)庫(kù)服務(wù)器的連接。適用環(huán)境:適合數(shù)據(jù)傳輸量少、系統(tǒng)規(guī)模不大、客戶機(jī)和服務(wù)器在同一網(wǎng)絡(luò)內(nèi)的環(huán)境。連接模式下數(shù)據(jù)訪問(wèn)的步驟連接模式1三、ADO.NET數(shù)據(jù)庫(kù)訪問(wèn)模式(1)使用Connection對(duì)象連接數(shù)據(jù)庫(kù);(2)使用Command對(duì)象執(zhí)行數(shù)據(jù)訪問(wèn)命令;(3)使用DataReader對(duì)象訪問(wèn)數(shù)據(jù);(4)訪問(wèn)完畢后,關(guān)閉DataReader對(duì)象和Connection對(duì)象。第10頁(yè),共24頁(yè)。特點(diǎn):客戶機(jī)操作數(shù)據(jù)時(shí)可以斷開和數(shù)據(jù)庫(kù)服務(wù)器的連接。適用環(huán)境:適合網(wǎng)絡(luò)數(shù)據(jù)量大、系統(tǒng)節(jié)點(diǎn)多、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,尤其是通過(guò)Internet進(jìn)行連接的網(wǎng)絡(luò)。斷開連接模式

7、下數(shù)據(jù)訪問(wèn)的步驟(1)使用Connection對(duì)象連接數(shù)據(jù)庫(kù);(2)使用Command對(duì)象設(shè)置數(shù)據(jù)訪問(wèn)命令;(3)使用DataAdapter對(duì)象訪問(wèn)數(shù)據(jù)并填充到DataSet對(duì)象中;斷開連接模式三、ADO.NET數(shù)據(jù)庫(kù)訪問(wèn)模式2第11頁(yè),共24頁(yè)。(4)在DataSet對(duì)象中執(zhí)行數(shù)據(jù)的各種操作。(5)使用DataAdapter對(duì)象更新數(shù)據(jù)庫(kù)。三、ADO.NET數(shù)據(jù)庫(kù)訪問(wèn)模式第12頁(yè),共24頁(yè)。聲明并創(chuàng)建Connection對(duì)象格式:*Connection 對(duì)象名=new *Connection(連接信息);(1)連接到SQL Server 數(shù)據(jù)庫(kù)的連接信息設(shè)置 采用Windows NT集成身份

8、驗(yàn)證“Server=服務(wù)器名;Integrated Security=SSPI;Database=數(shù)據(jù)庫(kù)名” 采用SQL Server身份驗(yàn)證“Server=服務(wù)器名;UID=登錄名;PWD=密碼;Database=數(shù)據(jù)庫(kù)名”注意:連接到SQL Server 數(shù)據(jù)庫(kù)一般使用SQL Server數(shù)據(jù)提供程序的SqlConnection對(duì)象,以上連接信息是針對(duì)該連接對(duì)象而設(shè)置的。使用Connection對(duì)象連接數(shù)據(jù)庫(kù)1四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第13頁(yè),共24頁(yè)。(2)連接到Access數(shù)據(jù)庫(kù)的連接信息設(shè)置“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=

9、數(shù)據(jù)庫(kù)文件名注意:連接到Access數(shù)據(jù)庫(kù)一般使用OLE DB數(shù)據(jù)提供程序的OleDbConnection對(duì)象,以上連接信息是針對(duì)該連接對(duì)象而設(shè)置的。例:采用Windows NT集成身份驗(yàn)證方式連接到SQL Server 數(shù)據(jù)庫(kù)。string strCnn=“Server=localhost;Integrated Security=SSPI;Database=Student”;SqlConnection sqlCnn = new SqlConnection(strCnn);四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第14頁(yè),共24頁(yè)。使用Connection對(duì)象連接到數(shù)據(jù)庫(kù)格式:對(duì)象名.Open();例: s

10、qlCnn.Open();說(shuō)明:關(guān)閉連接對(duì)象使用如下格式:對(duì)象名.Close();,例如sqlCnn.Close();四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第15頁(yè),共24頁(yè)。聲明并創(chuàng)建Command對(duì)象格式一: SqlCommand 對(duì)象名=new SqlCommand(命令字符串,連接對(duì)象);格式二: SqlCommand 對(duì)象名=new SqlCommand();設(shè)置Command對(duì)象的屬性Connection:設(shè)置該實(shí)例的連接對(duì)象;CommandType:設(shè)置該實(shí)例的命令類型,有三種:一般SQL語(yǔ)句類型CommandType.Text、存儲(chǔ)過(guò)程類型CommandType.StoredProcedu

11、re和表類型CommandType.TableDirect;CommandText:可以是SQL語(yǔ)句、存儲(chǔ)過(guò)程名和表名;使用Command對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)中數(shù)據(jù)四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)2第16頁(yè),共24頁(yè)。例1: string sql=select * from student; SqlCommand sqlCmd=new SqlCommand(sql,sqlCnn);例2: string sql=select * from student; SqlCommand sqlCmd=new SqlCommand(); sqlCmd.Connection=sqlCnn; sqlCmd.Command

12、Type=CommandType.Text; sqlCmd.CommandText=sql;四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第17頁(yè),共24頁(yè)。使用Command對(duì)象執(zhí)行命令格式一:返回SqlDataReader對(duì)象,并通過(guò)該對(duì)象訪問(wèn)執(zhí)行結(jié)果。一般在執(zhí)行查詢命令時(shí)使用該格式。 SqlDataReader 對(duì)象名=命令對(duì)象名.ExecuteReader();或SqlDataReader 對(duì)象名=命令對(duì)象名.ExecuteReader(CommandBehavior.CloseConnection);格式二:返回受影響的行數(shù)。一般在執(zhí)行插入、更新語(yǔ)句或不返回結(jié)果集的存儲(chǔ)過(guò)程時(shí)使用該格式。命令對(duì)象名.Ex

13、ecuteNonQuery();格式三:返回結(jié)果集中的第一行第一列的值,忽略其他行或列,一般在執(zhí)行統(tǒng)計(jì)查詢時(shí)使用該格式。命令對(duì)象名.ExecuteScalar();四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第18頁(yè),共24頁(yè)。例如:SqlDataReader sqlDr=sqlCmd.ExecuteReader();Command對(duì)象的高級(jí)使用:帶參數(shù)的命令命令參數(shù)的格式:SQL Server 的數(shù)據(jù)提供程序使用命令參數(shù)(前面冠以符號(hào))指定參數(shù);OLE DB的數(shù)據(jù)提供程序使用問(wèn)號(hào)(?)指定參數(shù)。向Command對(duì)象添加參數(shù)的格式: SqlParameter 參數(shù)對(duì)象名=命令對(duì)象名.Parameters.Add

14、(“參數(shù)名”,參數(shù)類型,參數(shù)大小); 參數(shù)對(duì)象名.Direction =參數(shù)方向(輸入/輸出/雙向/返回值參數(shù)); 參數(shù)對(duì)象名. Value =參數(shù)值;四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第19頁(yè),共24頁(yè)。例如:string strSql = select * from student where 姓名=name; SqlCommand sqlCmd=new SqlCommand(strSql, sqlCnn); SqlParameter paraName= sqlCmd.Parameters.Add (name,SqlDbType.NVarChar,10); paraName.Direction=P

15、arameterDirection.Input; paraName.Value = lstName.Text;注:OLE DB的數(shù)據(jù)提供程序的參數(shù)在添加時(shí)必須與參數(shù)定義的順序一致, SQL Server的數(shù)據(jù)提供程序則不作要求,但也最好一致。四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)第20頁(yè),共24頁(yè)。四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)使用DataReader對(duì)象讀取數(shù)據(jù)33獲取SqlDataReader對(duì)象通過(guò)Command對(duì)象ExecuteReader()方法獲取。使用格式同前述。注意:不能使用new關(guān)鍵字創(chuàng)建SqlDataReader對(duì)象。SqlDataReader對(duì)象的主要屬性與方法FieldCount屬性:

16、獲取當(dāng)前行中的列數(shù);GetString方法:獲取指定字段的字符串類型的值;Close方法:關(guān)閉SqlDataReader對(duì)象。 第21頁(yè),共24頁(yè)。四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)Read方法:前進(jìn)到下一條記錄。若該記錄存在,則返回true,否則返回false; 注意:SqlDataReader對(duì)象記錄指針的默認(rèn)位置在第一條記錄前面,因此,必須調(diào)用Read方法從第一條記錄開始讀取數(shù)據(jù)。使用SqlDataReader對(duì)象讀取數(shù)據(jù)格式: GetString(字段序號(hào)) 或?qū)ο竺白侄蚊?或 對(duì)象名字段序號(hào) 第22頁(yè),共24頁(yè)。四、使用連接模式訪問(wèn)數(shù)據(jù)庫(kù)例如: SqlDataReader sqlDr=sqlCmd.ExecuteReader(); if(sqlDr.Read() textBox1.Text=sqlDr姓名.ToString(); textBox1.Text=sqlDr.GetString(1); 第23頁(yè),共24頁(yè)。DataSet(數(shù)據(jù)集)對(duì)象:內(nèi)存中的數(shù)據(jù)庫(kù);DataTable(數(shù)據(jù)表)對(duì)象:內(nèi)存中的數(shù)據(jù)表,可以獨(dú)立存在;DataRow(數(shù)據(jù)行)對(duì)象:設(shè)置數(shù)據(jù)表中的行;DataColumn(數(shù)據(jù)列)對(duì)象:設(shè)置數(shù)據(jù)表中的列;DataVi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論