




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件學(xué)院 夏克付,數(shù)據(jù)庫應(yīng)用程序設(shè)計,第六講,接口是指前臺程序和后臺數(shù)據(jù)庫的連接部分。,接口的概念,ODBC(Open DataBase Connectivity,開放式數(shù)據(jù)庫互連):只能訪問關(guān)系型數(shù)據(jù)。 OLE DB(Object Linking and Embedding DataBase,數(shù)據(jù)庫對象的鏈接與嵌入):系統(tǒng)級編程接口,可以訪問所有類型的數(shù)據(jù) 。,一、數(shù)據(jù)庫訪問接口,ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對象):應(yīng)用程序級編程接口,可以訪問所有類型的數(shù)據(jù)。 ADO.NET:ADO的升級版本,是.NET平臺采用的數(shù)據(jù)庫訪問接口。,一、數(shù)據(jù)庫訪問接口,
2、ADO.NET是一些.NET Framework類庫中與數(shù)據(jù)庫訪問有關(guān)的類的集合,它是一種可以使程序員快速、高效地利用.NET開發(fā)出數(shù)據(jù)庫應(yīng)用程序的技術(shù)。其體系結(jié)構(gòu)如下:,ADO.NET的體系結(jié)構(gòu),二、ADO.NET概述,從ADO.NET的體系結(jié)構(gòu)可以看出,ADO.NET包括兩大部分:數(shù)據(jù)提供者和DataSet(數(shù)據(jù)集)。,數(shù)據(jù)提供者也稱為.NET Framework 數(shù)據(jù)提供程序,包括一系列用于連接到數(shù)據(jù)庫、執(zhí)行命令和檢索結(jié)果等類。 (1)核心對象,二、ADO.NET概述,二、ADO.NET概述,(2)數(shù)據(jù)提供程序種類,二、ADO.NET概述,DataSet對象又稱為數(shù)據(jù)集對象,是支持ADO
3、.NET的斷開式、分布式數(shù)據(jù)方案的核心對象,是ADO.NET技術(shù)的精髓。DataSet是數(shù)據(jù)的內(nèi)存駐留表示形式,可以將其理解為內(nèi)存中的數(shù)據(jù)庫。 DataSet對象包含一個或多個DataTable(數(shù)據(jù)表)對象的集合,這些對象由數(shù)據(jù)行(DataRow)和數(shù)據(jù)列(DataColumn),以及有關(guān)DataTable對象中數(shù)據(jù)的主鍵、外鍵、約束和關(guān)系信息組成。其結(jié)構(gòu)如下:,DataSet 對象,二、ADO.NET概述,二、ADO.NET概述,特點(diǎn):客戶機(jī)一直保持和數(shù)據(jù)庫服務(wù)器的連接。 適用環(huán)境:適合數(shù)據(jù)傳輸量少、系統(tǒng)規(guī)模不大、客戶機(jī)和服務(wù)器在同一網(wǎng)絡(luò)內(nèi)的環(huán)境。 連接模式下數(shù)據(jù)訪問的步驟,連接模式,三、
4、ADO.NET數(shù)據(jù)庫訪問模式,(1)使用Connection對象連接數(shù)據(jù)庫; (2)使用Command對象執(zhí)行數(shù)據(jù)訪問命令; (3)使用DataReader對象訪問數(shù)據(jù); (4)訪問完畢后,關(guān)閉DataReader對象和Connection對象。,特點(diǎn):客戶機(jī)操作數(shù)據(jù)時可以斷開和數(shù)據(jù)庫服務(wù)器的連接。 適用環(huán)境:適合網(wǎng)絡(luò)數(shù)據(jù)量大、系統(tǒng)節(jié)點(diǎn)多、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,尤其是通過Internet進(jìn)行連接的網(wǎng)絡(luò)。 斷開連接模式下數(shù)據(jù)訪問的步驟 (1)使用Connection對象連接數(shù)據(jù)庫; (2)使用Command對象設(shè)置數(shù)據(jù)訪問命令; (3)使用DataAdapter對象訪問數(shù)據(jù)并填充到DataSet對象中;
5、,斷開連接模式,三、ADO.NET數(shù)據(jù)庫訪問模式,(4)在DataSet對象中執(zhí)行數(shù)據(jù)的各種操作。 (5)使用DataAdapter對象更新數(shù)據(jù)庫。,三、ADO.NET數(shù)據(jù)庫訪問模式,聲明并創(chuàng)建Connection對象 格式:*Connection 對象名=new *Connection(連接信息); (1)連接到SQL Server 數(shù)據(jù)庫的連接信息設(shè)置 采用Windows NT集成身份驗(yàn)證 “Server=服務(wù)器名;Integrated Security=SSPI;Database=數(shù)據(jù)庫名” 采用SQL Server身份驗(yàn)證 “Server=服務(wù)器名;UID=登錄名;PWD=密碼;Dat
6、abase=數(shù)據(jù)庫名” 注意:連接到SQL Server 數(shù)據(jù)庫一般使用SQL Server數(shù)據(jù)提供程序的SqlConnection對象,以上連接信息是針對該連接對象而設(shè)置的。,使用Connection對象連接數(shù)據(jù)庫,四、使用連接模式訪問數(shù)據(jù)庫,(2)連接到Access數(shù)據(jù)庫的連接信息設(shè)置 “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=數(shù)據(jù)庫文件名 注意:連接到Access數(shù)據(jù)庫一般使用OLE DB數(shù)據(jù)提供程序的OleDbConnection對象,以上連接信息是針對該連接對象而設(shè)置的。 例:采用Windows NT集成身份驗(yàn)證方式連接到SQL Se
7、rver 數(shù)據(jù)庫。 string strCnn=“Server=localhost;Integrated Security=SSPI;Database=Student”; SqlConnection sqlCnn = new SqlConnection(strCnn);,四、使用連接模式訪問數(shù)據(jù)庫,使用Connection對象連接到數(shù)據(jù)庫 格式:對象名.Open(); 例: sqlCnn.Open(); 說明:關(guān)閉連接對象使用如下格式:對象名.Close();,例如sqlCnn.Close();,四、使用連接模式訪問數(shù)據(jù)庫,聲明并創(chuàng)建Command對象 格式一: SqlCommand 對象名=
8、new SqlCommand(命令字符串,連接對象); 格式二: SqlCommand 對象名=new SqlCommand(); 設(shè)置Command對象的屬性 Connection:設(shè)置該實(shí)例的連接對象; CommandType:設(shè)置該實(shí)例的命令類型,有三種:一般SQL語句類型CommandType.Text、存儲過程類型CommandType.StoredProcedure和表類型CommandType.TableDirect; CommandText:可以是SQL語句、存儲過程名和表名;,使用Command對象訪問數(shù)據(jù)庫中數(shù)據(jù),四、使用連接模式訪問數(shù)據(jù)庫,例1: string sql=s
9、elect * from student; SqlCommand sqlCmd=new SqlCommand(sql,sqlCnn); 例2: string sql=select * from student; SqlCommand sqlCmd=new SqlCommand(); sqlCmd.Connection=sqlCnn; sqlCmd.CommandType=CommandType.Text; sqlCmd.CommandText=sql;,四、使用連接模式訪問數(shù)據(jù)庫,使用Command對象執(zhí)行命令 格式一:返回SqlDataReader對象,并通過該對象訪問執(zhí)行結(jié)果。一般在執(zhí)行查
10、詢命令時使用該格式。 SqlDataReader 對象名=命令對象名.ExecuteReader(); 或 SqlDataReader 對象名=命令對象名.ExecuteReader(CommandBehavior.CloseConnection); 格式二:返回受影響的行數(shù)。一般在執(zhí)行插入、更新語句或不返回結(jié)果集的存儲過程時使用該格式。 命令對象名.ExecuteNonQuery(); 格式三:返回結(jié)果集中的第一行第一列的值,忽略其他行或列,一般在執(zhí)行統(tǒng)計查詢時使用該格式。 命令對象名.ExecuteScalar();,四、使用連接模式訪問數(shù)據(jù)庫,例如: SqlDataReader sqlD
11、r=sqlCmd.ExecuteReader(); Command對象的高級使用:帶參數(shù)的命令 命令參數(shù)的格式: SQL Server 的數(shù)據(jù)提供程序使用命令參數(shù)(前面冠以符號)指定參數(shù); OLE DB的數(shù)據(jù)提供程序使用問號(?)指定參數(shù)。 向Command對象添加參數(shù)的格式: SqlParameter 參數(shù)對象名=命令對象名.Parameters.Add(“參數(shù)名”,參數(shù)類型,參數(shù)大小); 參數(shù)對象名.Direction =參數(shù)方向(輸入/輸出/雙向/返回值參數(shù)); 參數(shù)對象名. Value =參數(shù)值;,四、使用連接模式訪問數(shù)據(jù)庫,例如: string strSql = select * f
12、rom student where 姓名=name; SqlCommand sqlCmd=new SqlCommand(strSql, sqlCnn); SqlParameter paraName= sqlCmd.Parameters.Add (name,SqlDbType.NVarChar,10); paraName.Direction=ParameterDirection.Input; paraName.Value = lstName.Text; 注:OLE DB的數(shù)據(jù)提供程序的參數(shù)在添加時必須與參數(shù)定義的順序一致, SQL Server的數(shù)據(jù)提供程序則不作要求,但也最好一致。,四、使用連
13、接模式訪問數(shù)據(jù)庫,四、使用連接模式訪問數(shù)據(jù)庫,獲取SqlDataReader對象 通過Command對象ExecuteReader()方法獲取。使用格式同前述。 注意:不能使用new關(guān)鍵字創(chuàng)建SqlDataReader對象。 SqlDataReader對象的主要屬性與方法 FieldCount屬性:獲取當(dāng)前行中的列數(shù); GetString方法:獲取指定字段的字符串類型的值; Close方法:關(guān)閉SqlDataReader對象。,四、使用連接模式訪問數(shù)據(jù)庫,Read方法:前進(jìn)到下一條記錄。若該記錄存在,則返回true,否則返回false; 注意:SqlDataReader對象記錄指針的默認(rèn)位置在
14、第一條記錄前面,因此,必須調(diào)用Read方法從第一條記錄開始讀取數(shù)據(jù)。 使用SqlDataReader對象讀取數(shù)據(jù) 格式: GetString(字段序號) 或 對象名“字段名” 或 對象名字段序號,四、使用連接模式訪問數(shù)據(jù)庫,例如: SqlDataReader sqlDr=sqlCmd.ExecuteReader(); if(sqlDr.Read() textBox1.Text=sqlDr姓名.ToString(); textBox1.Text=sqlDr.GetString(1); ,DataSet(數(shù)據(jù)集)對象:內(nèi)存中的數(shù)據(jù)庫; DataTable(數(shù)據(jù)表)對象:內(nèi)存中的數(shù)據(jù)表,可以獨(dú)立存在; DataRow(數(shù)據(jù)行)對象:設(shè)置數(shù)據(jù)表中的行; DataColumn(數(shù)據(jù)列)對象:設(shè)置數(shù)據(jù)表中的列; DataView(數(shù)據(jù)視圖)對象:提供界面顯示的數(shù)據(jù),該數(shù)據(jù)來自數(shù)據(jù)表。該對象支持?jǐn)?shù)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 涂料助劑:流平劑產(chǎn)業(yè)分析報告
- 廠房施工標(biāo)準(zhǔn)合同范例
- 臺面加工承攬合同范本
- 債權(quán)收益權(quán)轉(zhuǎn)讓合同范本
- 冷庫銷售合同范本
- 勞務(wù)司機(jī)合同范本
- 《魚我所欲也》教學(xué)反思
- 保安 醫(yī)院 合同范本
- 《美麗的公雞》教案
- 作業(yè)分包合同范例
- 2024年對口升學(xué)真題模擬語文試卷及答案十四
- 2024年積分制管理實(shí)施方案及細(xì)則
- CJJ6-2009 城鎮(zhèn)排水管道維護(hù)安全技術(shù)規(guī)程
- 新媒體營銷:營銷方式+推廣技巧+案例實(shí)訓(xùn) 微課版 第2版 思考與練習(xí)參考答案
- 2024年04月國家藥品監(jiān)督管理局藥品審評檢查長三角分中心招考聘用筆試筆試歷年典型考題及考點(diǎn)研判與答案解析
- 第2課 走進(jìn)物聯(lián)網(wǎng) 教學(xué)課件 -初中信息技術(shù)七年級下冊浙教版2023
- 《互聯(lián)網(wǎng)金融》教案
- 2024年煤礦防突證考試題庫及答案
- 小班數(shù)學(xué)《5以內(nèi)的數(shù)》課件
- 2024年山西省高考考前適應(yīng)性測試 (一模)英語試卷(含答案詳解)
- 西北師范大學(xué)校園網(wǎng)建設(shè)項(xiàng)目實(shí)施方案樣本
評論
0/150
提交評論