




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第18章數(shù)據(jù)訪問技術(shù) 數(shù)據(jù)庫(kù)是一門復(fù)雜的技術(shù) 在當(dāng)前的軟件開發(fā)中得到了廣泛的應(yīng)用 NET為應(yīng)用程序?qū)?shù)據(jù)庫(kù)的訪問提供了友好而且強(qiáng)大的支持 VisualStudio2008對(duì)數(shù)據(jù)庫(kù)提供了全方位的支持 ADO NET并不是ADO對(duì)象的下一代 而是在 NetFramework平臺(tái)中負(fù)責(zé)數(shù)據(jù)存取的對(duì)象 18 1數(shù)據(jù)庫(kù)的基本知識(shí) 對(duì)于數(shù)據(jù)管理 沒有數(shù)據(jù)庫(kù)技術(shù)之前 可能需要把數(shù)據(jù)記錄記錄在紙介質(zhì)上 這樣查找數(shù)據(jù)的效率就很低 安全性能差 現(xiàn)在有了數(shù)據(jù)庫(kù)的支持 就可以非常迅速的建立起自己的數(shù)據(jù)庫(kù) 并進(jìn)行管理和操作 18 1 1數(shù)據(jù)庫(kù)簡(jiǎn)介 數(shù)據(jù)庫(kù)技術(shù)產(chǎn)生于20世紀(jì)60年代中期 是數(shù)據(jù)管理的最新技術(shù) 是計(jì)算機(jī)科學(xué)的重要分支 數(shù)據(jù)庫(kù)技術(shù)是應(yīng)數(shù)據(jù)管理任務(wù)的需要而產(chǎn)生的 數(shù)據(jù)管理是指如果對(duì)數(shù)據(jù)進(jìn)行分類 組織 編碼 存儲(chǔ) 檢索和維護(hù) 它是數(shù)據(jù)處理的中心問題 經(jīng)歷了人工管理 文件管理和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)發(fā)展階段 人工管理階段在20世紀(jì)50年代中期以前 當(dāng)時(shí)計(jì)算機(jī)主要用于科學(xué)計(jì)算 人工管理數(shù)據(jù)具有以下的特點(diǎn) 數(shù)據(jù)不保存 數(shù)據(jù)需要由應(yīng)用程序自己管理 沒有相應(yīng)的軟件系統(tǒng)負(fù)責(zé)數(shù)據(jù)的管理工作 數(shù)據(jù)不共享 數(shù)據(jù)不具有獨(dú)立性 數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化后 必須對(duì)應(yīng)用程序做相應(yīng)的修改 這就進(jìn)一步加重了開發(fā)人員的負(fù)擔(dān) 18 1 2SQL語言簡(jiǎn)介 SQL語言是1874年由Boyce和Chamberlin提出的 1875年至1879年IBM公司SanJoseResearchLaboratory研制的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)原型系統(tǒng)SystemR實(shí)現(xiàn)了這種語言 自SQL語言成為國(guó)際標(biāo)準(zhǔn)語言以后 各個(gè)數(shù)據(jù)庫(kù)廠家紛紛推出各自支持的SQL軟件或與SQL的接口軟件 這就為不同數(shù)據(jù)庫(kù)系統(tǒng)之間的相互操作有了共同的基礎(chǔ) SQL語言是一個(gè)綜合的 通用的 功能極強(qiáng)且簡(jiǎn)潔易學(xué)的語言 主要的特點(diǎn)包括 綜合統(tǒng)一 高度非過程化面向集合的操作方式 語言簡(jiǎn)單 易學(xué)易用 18 1 3VisualStudio2008對(duì)數(shù)據(jù)庫(kù)的支持 VisualStudio2008中提供了對(duì)SQLServer2005Express版本的數(shù)據(jù)庫(kù) 安裝VisualStudio2008時(shí) 選擇默認(rèn)安裝 安裝完后 右擊 我的電腦 圖標(biāo) 在彈出的菜單中選擇 管理 命令 如果安裝正確的話 展開 服務(wù)和應(yīng)用程序 節(jié)點(diǎn) 可以看到 SQLServer配置管理器 如圖所示 計(jì)算機(jī)管理 18 2SQL語言 VisualStudio2008為了全方位支持SQL語言 提供了許多易用的工具來支持SQL語言的各個(gè)方面 下面就逐一介紹各個(gè)工具 18 2 1定義 刪除與修改數(shù)據(jù)表 在 服務(wù)器資源管理器 面板中選擇 數(shù)據(jù)連接 項(xiàng) 新建一個(gè)與數(shù)據(jù)庫(kù) Northwind 的連接 在該數(shù)據(jù)庫(kù)連接中找到 表 節(jié)點(diǎn)并右擊 在彈出的菜單中選擇 添加新表 命令 接著VisualStudio2008將自動(dòng)轉(zhuǎn)入創(chuàng)建數(shù)據(jù)表的界面 如圖所示 創(chuàng)建數(shù)據(jù)表 18 2 2顯示數(shù)據(jù) 如果想顯示數(shù)據(jù) 可以右擊表MyTable 選擇彈出菜單中的 顯示表數(shù)據(jù) 命令 點(diǎn)擊選擇該命令 VisualStudent2008將會(huì)自動(dòng)打開顯示數(shù)據(jù)的界面 如圖所示 在圖中 可以直接在ID和Name列的下方輸入相應(yīng)的數(shù)據(jù)即可添加數(shù)據(jù)至表Student 如圖所示 顯示數(shù)據(jù)界面輸入數(shù)據(jù) 18 2 3查詢 如果要實(shí)現(xiàn)查詢功能 可以在VisualStudio2008中進(jìn)行數(shù)據(jù)查詢工作 在相應(yīng)的數(shù)據(jù)表上右擊 選擇 新建查詢 命令 VisualStudio2008將彈出一個(gè)對(duì)話框 提示讀者選擇要查詢的表 如圖所示 選擇MyTable表 單擊 添加 按鈕 VisualStudio2008將自動(dòng)將表添加到查詢界面中 如圖所示 添加表查詢界面 18 2 4存儲(chǔ)過程 如果要建立存儲(chǔ)過程 可以在VisualStudio2008中用向?qū)ё詣?dòng)建立 在 服務(wù)資源管理器 中 右擊選擇 存儲(chǔ)過程 如圖所示 在出現(xiàn)的選項(xiàng)中選擇 添加新存儲(chǔ)過程 如圖所示 就會(huì)自動(dòng)建立存儲(chǔ)過程如圖所示 選擇存儲(chǔ)過程 添加存儲(chǔ)過程 自動(dòng)建立存儲(chǔ)過程 18 3連接和操作數(shù)據(jù)庫(kù) ADO NET是一組向 NET程序員公開數(shù)據(jù)訪問服務(wù)的類 為創(chuàng)建分布數(shù)據(jù)共享應(yīng)用程序提供了豐富的組件 為 NETFramework中不可缺少的一部分 ADO NET中的結(jié)構(gòu)架構(gòu)如圖所示 ADO NET結(jié)構(gòu) 18 3 1ADO NET的概述 ADO NET通過數(shù)據(jù)處理將數(shù)據(jù)訪問分解為多個(gè)可以單獨(dú)使用或者順序使用的不連續(xù)組件 通常包括用于數(shù)據(jù)連接到數(shù)據(jù)庫(kù) 執(zhí)行命令和檢索結(jié)果的 NETFramework數(shù)據(jù)提供程序 下列將逐一介紹各個(gè)概念 1 Connection對(duì)象2 Command對(duì)象3 DataReader對(duì)象4 DataSet對(duì)象 18 3 2鏈接數(shù)據(jù)對(duì)象Connection 通過ADO NET的各個(gè)對(duì)象的相互配合 就可以連接和操作數(shù)據(jù)庫(kù) 下面將逐一講解各個(gè)對(duì)象的用法 要訪問數(shù)據(jù)庫(kù) 首先要?jiǎng)?chuàng)建和打開數(shù)據(jù)庫(kù)鏈接 Connection對(duì)象主要用于處理對(duì)數(shù)據(jù)庫(kù)的連接和管理數(shù)據(jù)庫(kù)事務(wù) 著重說明一下 創(chuàng)建鏈接的方式依賴于要訪問的數(shù)據(jù)庫(kù)的類型 用于創(chuàng)建和打開MicrosoftSQLServer數(shù)據(jù)庫(kù)的鏈接的格式如下 stringconnectionString Server Localhost database pubs uid sa pwd xxx SqlConnectionmyConnection newSqlConnection connectionString myConnection Open 18 3 3操作數(shù)據(jù)對(duì)象Command和讀取數(shù)據(jù)對(duì)象DataReader 當(dāng)使用Connection對(duì)象打開鏈接后 就可以用一個(gè)包含SQL語句的SQL字符串 通過Command對(duì)象和DataReader對(duì)象來操作數(shù)據(jù)庫(kù) 基本格式如下 stringcmdString Select FromEmployees SqlCommandmyCmd newSqlCommand cmdString myConnection SqlDataReadermySR newmyCmd ExecuteReader 18 3 4數(shù)據(jù)集對(duì)象DataSet 本節(jié)示例參考 示例代碼 Chap18 TestDataSet 當(dāng)需要獲取一些數(shù)據(jù)庫(kù)記錄并要快速顯示在網(wǎng)頁上 那么應(yīng)該使用DataReader對(duì)象 可是如果要操作斷開連接的內(nèi)存數(shù)據(jù)庫(kù)記錄 就需要使用DataSet對(duì)象 DataSet對(duì)象是ADO NET中最復(fù)雜的對(duì)象 該對(duì)象選定的數(shù)據(jù)在內(nèi)存中存儲(chǔ) DataSet對(duì)象提供了一個(gè)記錄集 可以包含一個(gè)或多個(gè)DataTable類 它們代表數(shù)據(jù)庫(kù)表 同時(shí)可以用DataRelation類定義表之間的關(guān)系 最后DataView類代表DataTable的視圖 DataAdapter類是DataSet與它代表的數(shù)據(jù)源之間的橋梁 使用DataAdapter對(duì)象和DataSet對(duì)象可以這樣讀取數(shù)據(jù)庫(kù) 18 4數(shù)據(jù)綁定技術(shù) 在快速應(yīng)用程序開發(fā)中 NET讓整個(gè)數(shù)據(jù)綁定的概念超越了原來簡(jiǎn)單的把控件附加到數(shù)據(jù)表格上的概念 本節(jié)將在ADO NET基礎(chǔ)上介紹控件的數(shù)據(jù)綁定技術(shù) 18 4 1有關(guān)數(shù)據(jù)綁定概念 數(shù)據(jù)綁定是指把控件與存儲(chǔ)在數(shù)據(jù)源中的信息綁定在一起 數(shù)據(jù)源可以是表達(dá)式 屬性 方法 集合 甚至另一個(gè)控件的屬性 實(shí)現(xiàn)綁定后一個(gè)好處就是只要程序中相應(yīng)的數(shù)據(jù)發(fā)生變法 那么與其綁定的表達(dá)式 屬性 方法 集合 屬性也會(huì)隨之改變 數(shù)據(jù)綁定的重點(diǎn)不是數(shù)據(jù)部分 而是綁定部分 如果要在控件綁定屬性中顯示綁定的數(shù)據(jù) 就需要顯示調(diào)用DataBind 方法 該方法是頁和所有服務(wù)器控件的方法 通常是在Page Load事件調(diào)用DataBind 如下所示 Protectedvoidpage Load ObjectSrc EventArgsE DataBind 18 4 2實(shí)現(xiàn)綁定數(shù)據(jù)源 本節(jié)示例參考 示例代碼 Chap18 BindDatesouce 理解數(shù)據(jù)綁定的工作原理的最好辦法是看幾個(gè)例子 下面兩小節(jié)將講解如何把數(shù)據(jù)綁定到服務(wù)器控件上 數(shù)據(jù)源為數(shù)組和數(shù)據(jù)庫(kù) 下面通過一個(gè)把數(shù)組中的數(shù)據(jù)綁定到DropDownList控件中的實(shí)例來講解 首先產(chǎn)生一個(gè)數(shù)組 然后設(shè)置DropDounList控件的DataSource屬性 接著調(diào)用DataBind方法 18 5數(shù)據(jù)源控件 數(shù)據(jù)源控件的主要作用是實(shí)現(xiàn)與數(shù)據(jù)連接的操作 VisualStudio2008中的數(shù)據(jù)源控件分別為SqlDataSource控件 AccessDataSource控件 LinqDataSource控件 ObjectDataSource控件 XmlDataSource控件和SiteMapDataSource控件 如圖所示 數(shù)據(jù)源控件 18 5 1SQL數(shù)據(jù)源控件SqlDataSource 本節(jié)示例參考 示例代碼 Chap18 TestSqlDataSource 通過SqlDataSource控件 可以使用Web控件訪問位于關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù) 包括MicrosoftSQLServer和Oracle數(shù)據(jù)庫(kù)以及OLEDB和ODBC數(shù)據(jù)源 該控件可以跟數(shù)據(jù)訪問控件一起使用 用少量代碼或者不用代碼在ASP NET網(wǎng)頁上顯示和操作數(shù)據(jù) 在提供用于連接到數(shù)據(jù)庫(kù)的連接字符串和使用數(shù)據(jù)的SQL語句或存儲(chǔ)過程后 SqlDataSource控件就可以代替ADO NET類 使網(wǎng)頁訪問和操作數(shù)據(jù) 因?yàn)樵谶\(yùn)行時(shí) 該控件會(huì)自動(dòng)打開數(shù)據(jù)連接 執(zhí)行SQL語句或存儲(chǔ)過程 然后選定數(shù)據(jù) 最后關(guān)閉連接 18 5 2Access數(shù)據(jù)源控件AccessDataSource 本節(jié)示例參考 示例代碼 Chap18 TestAccessDataSource 在小型網(wǎng)站的開發(fā)中 經(jīng)常會(huì)用到Access數(shù)據(jù)庫(kù) 本節(jié)將介紹如何使用AccessDataSource控件來連接MicrosoftAccess數(shù)據(jù)庫(kù) 檢素該類型數(shù)據(jù)庫(kù)中 mdb文件中的數(shù)據(jù) AccessDataSource控件繼承了SqlDataSource類 使用System Data OleDb提供程序連接到MicrosoftAccess數(shù)據(jù)庫(kù) 為了方便用戶配置數(shù)據(jù)源并綁定到相應(yīng)的控件上 可以使用數(shù)據(jù)源配置界面 下面將詳細(xì)演示如何使用數(shù)據(jù)源配置界面 18 5 3對(duì)象數(shù)據(jù)源控件ObjectDataSource 本節(jié)示例參考 示例代碼 Chap18 TestObjectDataSource 在網(wǎng)站的開發(fā)中 經(jīng)常會(huì)用到類對(duì)象中的數(shù)據(jù) 本節(jié)將介紹如何使用ObjectDataSource控件來連接類對(duì)象 為了方便用戶配置數(shù)據(jù)源并綁定到相應(yīng)的控件上 可以使用數(shù)據(jù)源配置界面 下面將詳細(xì)演示如何使用數(shù)據(jù)源配置界面 運(yùn)行結(jié)果 18 5 4Xml數(shù)據(jù)源控件XmlDataSource 本節(jié)示例參考 示例代碼 Chap18 TestXmlDataSource XmlDataSource控件的作用就是檢索XML數(shù)據(jù) 然后編程訪問或者將其綁定到其他控件 XmlDataSourc控件非常簡(jiǎn)單 無須手寫代碼 就可以實(shí)現(xiàn)對(duì)XML數(shù)據(jù)的訪問 過濾以及轉(zhuǎn)換 同時(shí)XML數(shù)據(jù)的訪問不僅可以從本地文件進(jìn)行 而且也可以從指定的URL地址自動(dòng)下載 為了方便用戶配置數(shù)據(jù)源并綁定到相應(yīng)的控件上 可以使用數(shù)據(jù)源配置界面 下面 將詳細(xì)演示如何使用數(shù)據(jù)源配置界面 18 6數(shù)據(jù)綁定控件 ASP NET的數(shù)據(jù)訪問控件有Repeater控件 Datalist控件 GirdView控件 DetailsView控件 FormView控件和ListView控件 如圖所示 下面將逐一介紹 數(shù)據(jù)訪問控件 18 6 1重復(fù)控件Repeater 本節(jié)示例參考 示例代碼 Chap18 TestRepeater Repeater控件是一個(gè)模板控件 可以使用網(wǎng)頁中的任何可用數(shù)據(jù)做數(shù)據(jù)源 并且能夠創(chuàng)造出自定義的列表 該控件可以靈活的控制數(shù)據(jù) 還可以重復(fù)操作 因?yàn)樵摽丶]有默認(rèn)的外觀 所以用戶可以決定以垂直 水平 在一行內(nèi)或者其他方式布置元素 配置模板 18 6 2數(shù)據(jù)列表控件DataList 本節(jié)示例參考 示例代碼 Chap18 TestDataList DataList控件又稱為數(shù)據(jù)列表控件 因?yàn)樗悄0蹇丶?所以可以非常靈活的顯示數(shù)據(jù) 同時(shí)又因?yàn)閷捥峁┝藢?duì)顯示數(shù)據(jù)排序 編輯和分頁等支持 所以它具有更強(qiáng)大的功能 也是一個(gè)非常強(qiáng)大的數(shù)據(jù)綁定控件 DataList控件可以說是另一種Repeater控件 它與Repeater控件一樣重復(fù)清單的方式顯示數(shù)據(jù)項(xiàng)目 但是該控件比Repeater控件在使用上更靈活一些 更易于設(shè)計(jì)和維護(hù) 它在Repeater控件的基礎(chǔ)上又增加了兩種模板 SelectedItemTemplate 選擇模板 當(dāng)用戶選擇該控件的某項(xiàng)時(shí) 控制其的顯示 EditItemTemplate 編輯模板 設(shè)置進(jìn)行編輯而選定的項(xiàng) 18 6 3網(wǎng)格視圖控件GirdView 本節(jié)示例參考 示例代碼 Chap18 TestGirdView DataGrid控件又稱為網(wǎng)格視圖控件 以表格的形式顯示數(shù)據(jù) DataGrid控件將數(shù)據(jù)源的字段顯示為表中的列 DataGrid控件中的每一行表示數(shù)據(jù)源中的一個(gè)記錄 同時(shí)該控件還支持排序 分頁 編輯和刪除等操作 當(dāng)數(shù)據(jù)源的大小超過頁面的范圍 就可以使用分頁機(jī)制 DataGrid控件自帶了分頁機(jī)制 可以在用戶不作任何處理的情況下 直接將數(shù)據(jù)源的行分成多頁顯示 18 6 4其他控件 呈現(xiàn)多列數(shù)據(jù)時(shí) 可以使用Repeater控件 DataList控件和GridView控件 但是如果要呈現(xiàn)單列數(shù)據(jù) 即常用的數(shù)據(jù)明細(xì)時(shí) 就會(huì)使用到DetailsView控件和FormView控件 雖然DetailsView控件的布局固定 自定義數(shù)據(jù)顯示的布局功能有限 而FormView數(shù)據(jù)控件都有很強(qiáng)的自定義布局能力 但是兩者都內(nèi)置了分頁和排序等功能 DetailsView控件在功能上與GridView控件非常相似 一次呈現(xiàn)一條表格形式的記錄 并提供翻閱多條記錄以及插入 更新和刪除記錄的功能 FormView控件一次呈現(xiàn)數(shù)據(jù)源中的一條記錄 并提供翻閱多條記錄以及插入 更新和刪除記錄的功能 不過 兩者之間的差別在于 DetailsView控件使用基于表格的布局 在這種布局中 數(shù)據(jù)記錄的每個(gè)字段都顯示為控件中的一行 而FormView控件則不指定用于顯示記錄的預(yù)定義布局 實(shí)際上 用戶將創(chuàng)建包含控件的模板 以顯示記錄中的各個(gè)字段 該模板包含用于設(shè)置窗體布局的格式 控件和綁定表達(dá)式 18 7其他數(shù)據(jù)庫(kù)介紹 除了SQLServer系列的數(shù)據(jù)庫(kù)軟件之外 還有許多其他的數(shù)據(jù)庫(kù)服務(wù)軟件 下面簡(jiǎn)要介紹其他的數(shù)據(jù)庫(kù)軟件 18 7 1MySQL數(shù)據(jù)庫(kù) MySQL是一款非常著名的數(shù)據(jù)庫(kù)軟件 它是一個(gè)真正的多用戶 多線程SQL數(shù)據(jù)庫(kù)服務(wù)器 其最大優(yōu)點(diǎn)就是開源免費(fèi) MySQL提供了很好的SQL語言支持 但面對(duì)大型數(shù)據(jù)庫(kù)軟件有點(diǎn)力不從心 而且配套軟件不夠完善 隨著開源社區(qū)的不斷努力 一款名為SQLyog
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 庫(kù)房消防安全培訓(xùn)
- 防溺水安全教育心得體會(huì)500字
- 2025屆上海市徐匯區(qū)上海中學(xué)高一物理第二學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 網(wǎng)絡(luò)事故應(yīng)急預(yù)案
- 2025年浙江省紹興市紹興一中物理高一下期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- 變電站投運(yùn)工作總結(jié)
- 生產(chǎn)車間安全規(guī)章制度范本
- 上班安全培訓(xùn)
- 2025屆廣東省廣雅中學(xué)、執(zhí)信、六中、深外四校高二物理第二學(xué)期期末聯(lián)考試題含解析
- 安全生產(chǎn)違規(guī)行為
- 學(xué)霸提優(yōu)第四單元《我們講文明》重難點(diǎn)梳理 課件
- 安徽青碩建設(shè)有限公司招聘筆試真題2024
- 公司適用法律法規(guī)標(biāo)準(zhǔn)清單2025年08月更新
- 2025年4月自考00077金融市場(chǎng)學(xué)試題
- 火龍罐綜合灸技術(shù)課件
- LS/T 3244-2015全麥粉
- GB/T 6414-2017鑄件尺寸公差、幾何公差與機(jī)械加工余量
- GB/T 20957.4-2007精密加工中心檢驗(yàn)條件第4部分:線性和回轉(zhuǎn)軸線的定位精度和重復(fù)定位精度檢驗(yàn)
- 電纜橋架施工圖集
- 信念的力量課件
- 接力初三贏在暑假-八年級(jí)下學(xué)期期末家長(zhǎng)會(huì)課件
評(píng)論
0/150
提交評(píng)論