版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫編程主要內(nèi)容1、數(shù)據(jù)庫基礎(chǔ)2、數(shù)據(jù)訪問技術(shù)3、ADO.net數(shù)據(jù)訪問模型1、數(shù)據(jù)庫基礎(chǔ)數(shù)據(jù)庫(DB)存放數(shù)據(jù)的倉庫,但這些數(shù)據(jù)之間有一定的關(guān)聯(lián),并按照一定的格式存放。數(shù)據(jù)包括數(shù)字、文本、圖像、音頻和視頻等。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是管理數(shù)據(jù)庫的系統(tǒng),具備以下功能:數(shù)據(jù)定義,數(shù)據(jù)操作,如對數(shù)據(jù)表的插入、刪除、修改、查詢等數(shù)據(jù)完整性檢查,保證輸入的數(shù)據(jù)滿足相應(yīng)約束條件數(shù)據(jù)庫的安全保護(hù),只有授權(quán)用戶才能訪問數(shù)據(jù)庫的并發(fā)控制,多個程序可同時訪問數(shù)據(jù)數(shù)據(jù)庫的故障恢復(fù),網(wǎng)絡(luò)訪問,簡單的存取數(shù)據(jù)庫信息的接口和工具等。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、操作數(shù)據(jù)庫的應(yīng)用程序,加上支撐的硬件平臺、軟件平臺以及與數(shù)據(jù)庫有關(guān)的人員共同組成。數(shù)據(jù)庫的組織結(jié)構(gòu)數(shù)據(jù)庫
表
記錄
字段數(shù)據(jù)庫表間的關(guān)聯(lián)關(guān)系表之間的關(guān)聯(lián)是現(xiàn)實(shí)生活中事物之間關(guān)聯(lián)關(guān)系的模擬。主鍵外鍵在實(shí)際的數(shù)據(jù)庫設(shè)計中,經(jīng)常使用“自增字段”來作為表的主鍵。1、數(shù)據(jù)庫基礎(chǔ)創(chuàng)建數(shù)據(jù)庫和表CreatedatabaseXSCJcreatetable<表名>(<列名><數(shù)據(jù)類型>[列級完整性約束條件]
[,<列名><數(shù)據(jù)類型>[列級完整性約束條件]
.........
[,<表級完整性約束條件>]);createtableXSB什么是SQLSQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言),使用它來從數(shù)據(jù)庫中提取并操作各種數(shù)據(jù)。7SQL命令的分類SQL命令可以分成以下三類:DML(DataManipulationLanguage,數(shù)據(jù)操作語言):用于檢索或修改數(shù)據(jù)。DDL(DataDefinitionLanguage,數(shù)據(jù)定義語言):用于定義數(shù)據(jù)的結(jié)構(gòu),例如,創(chuàng)建、修改或刪除數(shù)據(jù)庫對象。DCL(DataControlLanguage,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。8常用的SQL命令Select:選擇數(shù)據(jù)Insert:插入數(shù)據(jù)Update:更新數(shù)據(jù)Delete:刪除數(shù)據(jù)9數(shù)據(jù)操作createtableXSB(XH char(6) NOTNULLPRIMARYKEY,XM char(8) NOTNULL,XB bit NULLDEFAULT1,CSSJ date NULL,ZY char(12) NULL,ZXF int NULL,BZ varchar(500)NOTNULL,)數(shù)據(jù)操作插入數(shù)據(jù)INSERTINTO<表名>[(<列名1>,<列名2>,<列名3>…)] VALUES(<列名1>,<列名2>,<列名3>…)實(shí)例:INSERTINTOXSB(XH,XM,XB,CSSJ,ZY,ZXF)VALUES(‘081101’,’王琳琳’,1,’1990-02-10’,’計算機(jī)’,50)或者:INSERTINTOXSBVALUES(‘081101’,’王琳琳’,1,’1990-02-10’,’計算機(jī)’,50,NULL)數(shù)據(jù)操作修改數(shù)據(jù)UPDATE<表名>SET<列名1>=<新值1>[,<列名2>=<新值2>[…n]] [WHERE<條件>]實(shí)例:UPDATEXSB SETBZ=‘三好生’ WHEREXH=‘081101’UPDATEXSBSET總學(xué)分=總學(xué)分+10數(shù)據(jù)操作刪除數(shù)據(jù)DELETE[FROM]<表名> [WHERE<條件>]實(shí)例:DELETEFROMXSBWHEREZXF>52將xsb表中總學(xué)分大于52分的行刪除。數(shù)據(jù)操作查詢數(shù)據(jù)SELECT[ALL|DISTINCT]<列名> [FROM<表名>] [WHERE<條件>]實(shí)例:SELECTXM,XH,ZXF FROMXSB WHEREXH=‘081101’SELECT*FROMXSB WHEREZY=‘管理與信息系統(tǒng)’ANDZXF>=422、數(shù)據(jù)訪問技術(shù)ASP.NET使用兩種方法實(shí)現(xiàn)數(shù)據(jù)的訪問一是使用數(shù)據(jù)源控件和數(shù)據(jù)綁定控件來訪問數(shù)據(jù)源。二是使用ADO.NET(即system.data命名空間)和System.xml命名空間中的類此外還可使用語言集成查詢LINQ,利用LinqDataSource和ListView控件。2.1數(shù)據(jù)源控件數(shù)據(jù)源控件能向頁面上的數(shù)據(jù)綁定控件提供來自不同數(shù)據(jù)源的數(shù)據(jù),并提供排序、分頁、緩存、更新、插入和刪除數(shù)據(jù)等功能。數(shù)據(jù)源控件都派生于DataSourceControl類,具有統(tǒng)一的基本編程模型和API,共享一組基本的核心功能。只用來表示特定的后端數(shù)據(jù)存儲,沒外在表現(xiàn)形式,運(yùn)行時不可見,需要與數(shù)據(jù)綁定控件配合使用。若數(shù)據(jù)存儲在SQLServer、SQLServerExpress、ODBC數(shù)據(jù)源、OLEDB數(shù)據(jù)源、Oracle數(shù)據(jù)庫中時,使用SqlDataSource控件。參見ASP.NET包含的數(shù)據(jù)源控件.txt常用的數(shù)據(jù)源控件SqlDataSource可以連接到ADO.NET支持的任何SQL數(shù)據(jù)庫AccessDataSource連接到使用MicrosoftOffice創(chuàng)建的Access數(shù)據(jù)庫ObjectDataSource連接到應(yīng)用程序的Bin或
App_Code
目錄中的中間層業(yè)務(wù)對象或數(shù)據(jù)集XmlDataSource連接到XML文件SitemapDataSource連接到此應(yīng)用程序的站點(diǎn)導(dǎo)航樹(要求應(yīng)用程序根目錄處有一個有效的站點(diǎn)地圖文件,默認(rèn)的文件名為“Web.sitemap”),站點(diǎn)地圖文件其實(shí)也是一個XML文件LINQDataSource.NET3.0新增,可以訪問各種類型的數(shù)據(jù),包括數(shù)據(jù)庫和XML文件。與C#/VB.NET等.NET語言直接集成17SqlDataSource控件將SqlDataSource控件與數(shù)據(jù)綁定控件集成,為SqlDataSource控件設(shè)置數(shù)據(jù)庫連接字符串、SQL語句或者存儲過程名。當(dāng)應(yīng)用程序運(yùn)行時,SqlDataSource控件會根據(jù)設(shè)置的參數(shù)自動連接數(shù)據(jù)源,并且執(zhí)行SQL語句或者存儲過程,然后返回結(jié)果記錄集,最后關(guān)閉數(shù)據(jù)庫。這些過程不需編碼,只要設(shè)置控件屬性即可。一個實(shí)例<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:NORTHWINDConnectionString%>"SelectCommand="SELECT[RegionID],[RegionDescription]FROM[Region]"OnSelected="SqlDataSource1_Selected"></asp:SqlDataSource>與之共同使用的數(shù)據(jù)綁定控件示例:<asp:RadioButtonListID="RadioButtonList1"runat="server"DataSourceID="SqlDataSource1"DataTextField="RegionDescription"DataValueField="RegionID"RepeatDirection="Horizontal"BorderWidth="2px"BorderColor="Gray"></asp:RadioButtonList></div>Web.config文件中的創(chuàng)建<connectionStrings><addname="NORTHWINDConnectionString1" connectionString="DataSource=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWIND.MDF; IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True"providerName="System.Data.SqlClient"/></connectionStrings>使用參數(shù)的一個實(shí)例<asp:SqlDataSourceID="SqlDataSource1"runat="server"
ConnectionString="<%$ConnectionStrings:NORTHWINDConnectionString%>"
SelectCommand=“SELECT*FROM[Customers]WHERE([CustomersID]=@CustomersID
)"<SelectParameters>
<asp:QueryStringParameterName=“CustomerID”
QueryStringField=“ID”Type=“String”></asp:QueryStringParameter></SelectParameters></asp:SqlDataSource>SqlDataSource控件屬性、方法和事件屬性很多,重要的有DataSourceMode、SelectParameters和ConflictDetection方法可在程序中調(diào)用,完成標(biāo)準(zhǔn)數(shù)據(jù)操作,如在按鈕單擊事件處理程序中執(zhí)行Delete方法,實(shí)現(xiàn)刪除記錄的操作。IntDelete()、IntInsert()、IntUpdate()、IntIenumerableSelect()SqlDataSource控件屬性、方法和事件主要事件有8個,在執(zhí)行Select、Insert、Update和Delete命令的前后觸發(fā),使用這些事件可以改變控件發(fā)送給數(shù)據(jù)源的SQL命令。也可在執(zhí)行SQL命令時,取消操作或確定是否發(fā)生了錯誤。Selected和SelectingInserted和InsertingUpdated和UpdatingDeleted和Deleting典型應(yīng)用(參見實(shí)例)使用SqlDataSource控件連接數(shù)據(jù)庫利用帶參數(shù)的Select語句直接查詢并篩選數(shù)據(jù)在數(shù)據(jù)源的查詢結(jié)果中過濾數(shù)據(jù)參見8.1、8.2、8.3實(shí)例使用SqlDataSource控件連接數(shù)據(jù)庫利用帶參數(shù)的Select語句直接查詢并篩選數(shù)據(jù)本例涉及的Employees表的部分記錄如下:利用帶參數(shù)的Select語句直接查詢并篩選數(shù)據(jù)代碼中實(shí)現(xiàn)數(shù)據(jù)篩選的核心來自于帶參數(shù)的SQL語句,篩選是通過數(shù)據(jù)源來完成的。當(dāng)選擇不同的身份時,自動篩選出相應(yīng)的雇員名。在數(shù)據(jù)源的查詢結(jié)果中過濾數(shù)據(jù)本例的過濾是通過數(shù)據(jù)源控件來完成的,不是由數(shù)據(jù)源本身實(shí)現(xiàn)。當(dāng)選擇不同的身份時,將自動篩選出相應(yīng)的雇員名。2.2數(shù)據(jù)綁定控件主要用來在頁面顯示數(shù)據(jù)??梢杂帽砀?、報表、單選項(xiàng)、多選項(xiàng)和樹形方式顯示。常用的有:GridView、ListView、DetailsView、FormView等。以GridView為例,在不編寫代碼情況下,實(shí)現(xiàn)對數(shù)據(jù)的排序、分頁和編輯操作。數(shù)據(jù)綁定的層次結(jié)構(gòu)31數(shù)據(jù)庫ADO.NET數(shù)據(jù)綁定控件數(shù)據(jù)源控件提供顯示和編輯數(shù)據(jù)的可視化界面IDataSourceDataSourceView提供對數(shù)據(jù)的訪問接口:增、刪、改、查與數(shù)據(jù)庫交互,完成信息的增、刪、改、查工作。信息的存放地調(diào)用存取常用的數(shù)據(jù)綁定控件控件名稱說明GridView以表格的方式顯示和編輯數(shù)據(jù)DetailsView一次顯示、編輯、插入或刪除一條記錄。默認(rèn)情況下,DetailsView
控件將記錄的每個字段顯示在它自己的一行內(nèi)FormViewFormView控件與DetailsView控件相似,一次也只能顯示或編輯一條記錄。FormView需要給其設(shè)定一個模板DataList控件可以用某種用戶指定的格式來顯示數(shù)據(jù)(比如分列顯示),這種格式由模板和樣式進(jìn)行定義RepeaterRepeater控件沒有包含內(nèi)置的布局或樣式,需要由Web開發(fā)者指定所有的用于顯示數(shù)據(jù)的內(nèi)部控件和顯示樣式ListViewASP.NET3.5新增,以嵌套容器模板和占位符的方式提供靈活的數(shù)據(jù)顯示模式32GridView控件是以表格的形式顯示數(shù)據(jù),通過對其屬性進(jìn)行設(shè)置,可以實(shí)現(xiàn)數(shù)據(jù)的分頁、排序和編輯功能。建立一個網(wǎng)頁,放入一個SqlDataSource控件和一個GridView控件。為數(shù)據(jù)源控件配置數(shù)據(jù)表。將綁定控件與數(shù)據(jù)源控件綁定。參見實(shí)例8-93、ADO.NET數(shù)據(jù)訪問編程模型ADO.NET是.NETFramework的核心構(gòu)件,為上層的各種應(yīng)用程序提供數(shù)據(jù)存儲服務(wù)。ADO.NET是在微軟的.net中創(chuàng)建分布式和數(shù)據(jù)共享應(yīng)用程序的應(yīng)用程序開發(fā)接口(API)ADO.NET是一組數(shù)據(jù)處理的類。通過數(shù)據(jù)提供程序和數(shù)據(jù)集這兩個核心組件,提供一個統(tǒng)一的數(shù)據(jù)訪問模型,提供了各種對數(shù)據(jù)庫數(shù)據(jù)的存取功能。支持在線和離線的數(shù)據(jù)訪問。微軟數(shù)據(jù)存取技術(shù)的歷史發(fā)展ODBC:訪問關(guān)系型數(shù)據(jù)庫DAO與RDO:主要為VB早期版本設(shè)計的,可以方便地訪問Access和SQLServerADO與OLEDBObjectLinkingandEmbedding,Database,:隨著VisualStudio6一同發(fā)布,是Win32時代用得最廣泛的數(shù)據(jù)存取引擎。ADO.NET:.NET時代主流數(shù)據(jù)存取引擎LINQ:.NET3.0后引入,將數(shù)據(jù)存取訪問功能集成到編程語言中36ADO.net對象模型務(wù)必記住以下對象模型與數(shù)據(jù)庫構(gòu)成元素的對應(yīng)關(guān)系。不同的數(shù)據(jù)訪問方式區(qū)別數(shù)據(jù)訪問應(yīng)用程序可以在連接環(huán)境或非連接環(huán)境下進(jìn)行。連接環(huán)境是指應(yīng)用程序始終與數(shù)據(jù)源保持連接,直到程序結(jié)束。這種方式實(shí)時性好,但伸縮性差;離線環(huán)境是指應(yīng)用程序不是始終與數(shù)據(jù)源保持連接,中央數(shù)據(jù)存儲的一部分可以被獨(dú)立地復(fù)制與更改,在需要時可以與數(shù)據(jù)源中的數(shù)據(jù)合并,這種方式不獨(dú)占連接,可伸縮性好,但實(shí)時性差。離線環(huán)境中使用ADO.NET聲明連接對象Connection聲明數(shù)據(jù)適配器DataAdapter對象聲明DataSet對象打開連接,連接到數(shù)據(jù)源調(diào)用DataAdapter對象的Fill方法填充DataSet對象關(guān)閉連接對象Connection,斷開與數(shù)據(jù)源的連接處理離線數(shù)據(jù)DataSetADO.NET應(yīng)用程序DataSetDataAdapterConnectionDB連接環(huán)境中使用ADO.NET聲明連接對象Connection聲明查詢數(shù)據(jù)庫的Command對象,用來執(zhí)行SQL查詢;聲明DataReader對象打開連接,連接到數(shù)據(jù)源調(diào)用Command對象的ExecuteReader方法,將結(jié)果返回給DataReader對象處理DataReader獲得的在線數(shù)據(jù)。關(guān)閉DataReader對象關(guān)閉連接對象Connection,斷開與數(shù)據(jù)源的連接。ADO.NET應(yīng)用程序DataReaderCommandConnectionDB數(shù)據(jù)提供程序數(shù)據(jù)提供程序是.netFramework內(nèi)置的,一系列API的集合,主要有四個,(1)Connection,建立與數(shù)據(jù)源的連接。(2)Command,是對數(shù)據(jù)源操作命令的封裝。(3)DataReader,用來實(shí)現(xiàn)對特定數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行高速、只讀、只向前的數(shù)據(jù)訪問。(4)DataAdapter,用來將從數(shù)據(jù)源中檢索出的數(shù)據(jù)送往數(shù)據(jù)集DataSet。數(shù)據(jù)提供程序的核心對象(1)Connection,建立與數(shù)據(jù)源的連接。SqlConnectionconn=newSqlConnection();Conn.ConnectionString=“DataSource=MySqlServer;Userid=sa;password=123456;InitialCatalog=Northwind;IntegratedSecurity=False”;常用的方法:Open();Close();ChangeDatabase();CreateCommand();Dispose()數(shù)據(jù)提供程序的核心對象(2)Command,是對數(shù)據(jù)源操作命令的封裝。Stringsql=“SELECT*FROMXSB”;SqlCommandcommand1=NewSqlCommand(sql,sqlConnection)針對不同數(shù)據(jù)源,有不同的對象:OleDbCommand、SqlCommand、OdbcCommand、OracleCommand數(shù)據(jù)提供程序的核心對象(3)DataReader,用來實(shí)現(xiàn)對特定數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行高速、只讀、只向前的數(shù)據(jù)訪問。必須在持續(xù)連接狀態(tài)下工作。必須在創(chuàng)建Command對象的實(shí)例后,通過調(diào)用其ExecuteReader方法創(chuàng)建DataReader。DataReader
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青春期女生生理衛(wèi)生課件
- 2025年度茶葉產(chǎn)品溯源系統(tǒng)開發(fā)合同8篇
- 2025年門面房租賃合同參考模板(含裝修驗(yàn)收標(biāo)準(zhǔn))
- 2025年度環(huán)保產(chǎn)業(yè)園區(qū)基礎(chǔ)設(shè)施建設(shè)與運(yùn)營管理合同3篇
- 2025年度海外院校聯(lián)合培養(yǎng)項(xiàng)目合同協(xié)議書4篇
- 二零二五年度內(nèi)部股權(quán)贈與合同模板
- 二零二五年度電子商務(wù)APP平臺共建與品牌合作合同3篇
- 二零二五年度大數(shù)據(jù)支持民間借款擔(dān)保合同范本4篇
- 二零二五年度石油化工產(chǎn)品儲存與運(yùn)輸服務(wù)合同4篇
- 二零二五版郵輪碼頭設(shè)施租賃及運(yùn)營管理合同4篇
- 北師大版小學(xué)三年級上冊數(shù)學(xué)第五單元《周長》測試卷(含答案)
- 國家安全責(zé)任制落實(shí)情況報告3篇
- DB45T 1950-2019 對葉百部生產(chǎn)技術(shù)規(guī)程
- 2024年度順豐快遞冷鏈物流服務(wù)合同3篇
- 六年級下冊【默寫表】(牛津上海版、深圳版)(漢譯英)
- 合同簽訂培訓(xùn)
- 新修訂《保密法》知識考試題及答案
- 電工基礎(chǔ)知識培訓(xùn)課程
- 鐵路基礎(chǔ)知識題庫單選題100道及答案解析
- 金融AI:顛覆與重塑-深化理解AI在金融行業(yè)的實(shí)踐與挑戰(zhàn)
- 住宅樓安全性檢測鑒定方案
評論
0/150
提交評論