![C#.net數(shù)據(jù)庫訪問方法_第1頁](http://file4.renrendoc.com/view/6860395a9dcce4728c1b61f399c450af/6860395a9dcce4728c1b61f399c450af1.gif)
![C#.net數(shù)據(jù)庫訪問方法_第2頁](http://file4.renrendoc.com/view/6860395a9dcce4728c1b61f399c450af/6860395a9dcce4728c1b61f399c450af2.gif)
![C#.net數(shù)據(jù)庫訪問方法_第3頁](http://file4.renrendoc.com/view/6860395a9dcce4728c1b61f399c450af/6860395a9dcce4728c1b61f399c450af3.gif)
![C#.net數(shù)據(jù)庫訪問方法_第4頁](http://file4.renrendoc.com/view/6860395a9dcce4728c1b61f399c450af/6860395a9dcce4728c1b61f399c450af4.gif)
![C#.net數(shù)據(jù)庫訪問方法_第5頁](http://file4.renrendoc.com/view/6860395a9dcce4728c1b61f399c450af/6860395a9dcce4728c1b61f399c450af5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫訪問技術(shù)ADO.NET數(shù)據(jù)庫訪問計(jì)算機(jī)科學(xué)系林加華掌握ADO.NET的原理與結(jié)構(gòu)掌握Connection類的使用掌握Command類的使用掌握DataReader類的使用掌握DataAdapter類的使用掌握DataSet、DataTable、DataRow的使用掌握以斷開連接和連接的方式操作數(shù)據(jù)庫目標(biāo)21.ADO.NET簡介4-1以流的形式從文件中讀寫數(shù)據(jù)少量數(shù)據(jù)不適用于大量數(shù)據(jù)3ADO.NET
簡介4-2以流的形式從文件中讀寫數(shù)據(jù)少量數(shù)據(jù)不適用于大量數(shù)據(jù)中央數(shù)據(jù)庫要管理數(shù)據(jù)庫,需要專門的軟件應(yīng)用程序RDBMSMS-ACCESSSQL-ServerORACLE4ADO.NET
簡介4-3中央數(shù)據(jù)庫用戶需要時,可以隨時訪問數(shù)據(jù)用戶計(jì)算機(jī)向數(shù)據(jù)庫服務(wù)器發(fā)送請求客戶端不同的訪問方法和技術(shù)ADO.NET5ADO.NET
簡介4-4.NETFrameworkADO.NETSystem.Data
命名空間以ActiveX
數(shù)據(jù)對象(ADO)為基礎(chǔ)以XML(擴(kuò)展標(biāo)記語言)為格式傳送和接收數(shù)據(jù)6ADO.NET簡介
ADO.NET編程模型用于對關(guān)系或非關(guān)系型數(shù)據(jù)源的操作。ADO(ActiveXDataObject),是一個用于存取數(shù)據(jù)源的COM組件。ADO.NET在很多方面和ADO比較相近。ADO.NET的特征:非連接數(shù)據(jù)體系在數(shù)據(jù)集中緩存數(shù)據(jù)用XML進(jìn)行數(shù)據(jù)傳送通過數(shù)據(jù)命令和數(shù)據(jù)庫相互作用7
ADO.NET中的命名空間
System.Data(這個空間必須要引入)System.Data.OLEDBSystem.Data.SQLClientSystem.Data.OracleClient
System.Data.SqlSystem.Data.SqlTypesMicrosoft.SqlServer.ServerSystem.Transactions8ADO.NET結(jié)構(gòu)模型
ADO.NET包括兩個核心組件:DataSet和數(shù)據(jù)提供程序,用于實(shí)現(xiàn)數(shù)據(jù)操作和數(shù)據(jù)訪問的分離。9ADO.NET
對數(shù)據(jù)庫的訪問(3-1)將數(shù)據(jù)傳遞到用戶界面時,ADO.NET
采用XML
格式數(shù)據(jù)已緩存斷開式數(shù)據(jù)結(jié)構(gòu)10ADO.NET
對數(shù)據(jù)庫的訪問(3-2)對于Insert,Update,Delete
等單向操作應(yīng)用程序
數(shù)據(jù)庫1、用Connection.Open打開數(shù)據(jù)庫2、用DataAdaptor.Command或者Command.Execute
執(zhí)行命令3、關(guān)閉數(shù)據(jù)庫Insert用InsertCommandDelete用DeleteCommandUpdate用UpdateCommand11ADO.NET
對數(shù)據(jù)庫的訪問(3-3)應(yīng)用程序
數(shù)據(jù)庫關(guān)閉數(shù)據(jù)庫1、創(chuàng)建連接用Connection.Open建立連接2、用DataAdaptor.SelectCommand
執(zhí)行命令DataAdaptor.Fill對于Select的雙向操作DataSet12.NET數(shù)據(jù)提供程序5-1ConnectionCommandDataReaderDataAdapterADO.NETDataSet.NETFramework
數(shù)據(jù)提供程序
1、SQLClient2、OLEDB3、Oracle4、ODBC由以下各項(xiàng)組成的集合:13.NET數(shù)據(jù)提供程序5-2
客戶端服務(wù)器數(shù)據(jù)集2、將數(shù)據(jù)發(fā)送到數(shù)據(jù)集A、客戶端修改數(shù)據(jù)集3、數(shù)據(jù)集傳遞給客戶端B、將修改后的數(shù)據(jù)集傳遞給服務(wù)器1、客戶端從服務(wù)器請求數(shù)據(jù)1,2,3是從服務(wù)器檢索數(shù)據(jù)的過程A、B是對數(shù)據(jù)庫修改的過程14.NET數(shù)據(jù)提供程序5-3用于SQLServer
的.NETFramework數(shù)據(jù)提供程序System.Data.SqlClient
命名空間僅限于連接SQLServer數(shù)據(jù)庫7.0
或更高版本15SQLServer2005
SQLServer是微軟公司提供的一個安全、可靠、高效、用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用的平臺。SQLServer
配置管理器SQLServer
資源管理器16ADO.NET的核心對象
ADO.NET有以下幾個核心組件:ConnectionCommandDataReaderDataAdapterDataSet17Connection-1連接不同數(shù)據(jù)庫的連接類:OleDbConnection類:在System.Data.Oledb命名空間,主要用于連接Access、SQLServer6.5以下版本的數(shù)據(jù)庫OdbcConnection類:在System.Data.Odbc命名空間,用于連接ODBC數(shù)據(jù)源SqlConnection類:在System.Data.SqlClient命名空間,用于連接SQLServer數(shù)據(jù)庫OracleConnecton類:在System.Data.OracleClient命名空間,用于連接Oracle數(shù)據(jù)庫連接字符串必須提供3個信息:數(shù)據(jù)庫所在服務(wù)器的位置(DataSource);數(shù)據(jù)庫的名稱(InitialCatalog);數(shù)據(jù)庫的身份驗(yàn)證方式(Windows集成驗(yàn)證或者是SQLServer身份驗(yàn)證)。18Connection
對象5-2方法Close()Open()屬性ConnectionStringDatabaseConnectionstring:屬性指定要與那個數(shù)據(jù)庫進(jìn)行相連,數(shù)據(jù)庫名是什么?用戶名和密碼是什么?19Connection-2連接字符串示例:創(chuàng)建Connection對象打開和關(guān)閉連接:DataSource=localhost;InitialCatalog=Haier;IntegratedSecurity=SSPI;
Windows集成驗(yàn)證
DataSource=localhost;InitialCatalog=Haier;userid=sa;password=123456;SQLServer身份驗(yàn)證
DimconnStringAsString=_ "DataSource=localhost;InitialCatalog=Haier;userid=sa;password=123456"DimconnAsSqlConnection=newSqlConnection()conn.ConnectionString=connStringDimconnAsSqlConnection=newSqlConnection("DataSource=localhost;_ InitialCatalog=Haier;userid=sa;password=123456"conn.Open() '打開連接conn.Close() '關(guān)閉連接20應(yīng)用程序配置文件
app.config是應(yīng)用程序配置文件app.config文件中的connectionStrings標(biāo)簽配置連接字符串通過ConfigurationManager.ConnectionStrings集合可獲得連接字符串:<configuration>……<!--數(shù)據(jù)庫連接字符串--><connectionStrings><addname="MyConnectionString"connectionString="DataSource=localhost; InitialCatalog=Haier;IntegratedSecurity=SSPI"/></connectionStrings></configuration>DimconnStringAsString=ConfigurationManager._
ConnectionStrings("MyConnectionString").ConnectionString添加System.Configuration命名空間的引用:“項(xiàng)目”→“添加引用”,選擇“.NET”選項(xiàng)卡下的“System.Configuration”組件
21Command
對象7-1數(shù)據(jù)庫Command
對象指定要對數(shù)據(jù)庫執(zhí)行的操作檢索和操縱數(shù)據(jù)Command22Command
對象7-4用SQL語句的Command設(shè)置DimobjCommAsNewSqlCommand()objComm.CommandText="SQL語句"objComm.CommandType=CommandType.Text
objComm.Connection=objConnection用存儲過程的Command設(shè)置DimobjCommAsNewSqlCommand()objComm.CommandText=“sp_DeleteName"objComm.CommandType=CommandType.StoredProcedure
objComm.Connection=objConnectionSp_DeleteName是在SQLServer服務(wù)器上創(chuàng)建的存儲過程23
使用Command-1DimcmdAsSqlCommand=NewSqlCommand()cmd.Connection=concmd.CommandType=CommandType.Textcmd.CommandText="SELECT*FROMUserDetails"使用SqlCommand對象執(zhí)行一個SQL查詢語句:
使用SqlCommand對象執(zhí)行一個存儲過程:DimcmdAsSqlCommand=NewSqlCommand("SELECT*FROMBookInfo",con)DimcmdAsSqlCommand=NewSqlCommand("GetBooks",con)cmd.CommandType=CommandType.StoredProcedure24Command對象提供了3種執(zhí)行方法:ExecuteReader()
用于執(zhí)行SELECT命令,并返回一個DataReader對象。ExecuteNonQuery()
用于執(zhí)行非SELECT的命令,如INSERT、DELETE或者UPDATE命令,返回命令所影響的數(shù)據(jù)行數(shù)。也可以用ExecuteNonQuery()方法來執(zhí)行一些數(shù)據(jù)定義命令,如新建、更新、刪除數(shù)據(jù)庫對象(如表、索引等)。ExecuteScalar()
用于執(zhí)行SELECT查詢命令,返回?cái)?shù)據(jù)中第一行第一列的值。常用于執(zhí)行帶有COUNT()或者SUM()函數(shù)的SELECT命令。
使用Command-225DataReader
DataReader對象用來讀取數(shù)據(jù)。DataReader的常用方法:獲取DataReader對象:讀取數(shù)據(jù):關(guān)閉DataReader對象方法返回值功能說明Close()Void關(guān)閉數(shù)據(jù)讀取器。已重載NextResult()Boolean當(dāng)讀取批量的SQL語句的結(jié)果時,前進(jìn)到下一個結(jié)果集,如果有更多的結(jié)果集,將返回True。有重載Read()Boolean前進(jìn)到下一條記錄。如果有記錄,將返回True'通過Command的ExecuteReader()方法可以得到一個填充數(shù)據(jù)的DataReader對象
reader=cmd.ExecuteReader()reader("Pwd") '通過列名reader(0) '通過列的索引,索引從0開始reader.Close()26DataReader對象功能:提供一種只讀的、向前的數(shù)據(jù)訪問方法。使用DataReader對象的常用步驟:1、創(chuàng)建數(shù)據(jù)庫連接:
dimconnectstrasstring
connectstr="server=localhost;uid=sa;pwd=;database=pubs"
DimobjConnectionasnewsqlconnection(connectstr)2、打開連接:
objConnection.Open()3、使用Reader對象執(zhí)行SQL語句:
DimobjCommandAsNewSqlCommand("Select*fromAuthorswherestate='CA'",objConnection)
DimobjReaderAsSqlDataReader=objCommand.ExecuteReader()
27DataReader對象(2/3)4、用read()方法檢測查詢結(jié)果是否有記錄
WhileobjReader.Read()
...
endwhile5、關(guān)閉reader對象,關(guān)閉數(shù)據(jù)庫連接
objReader.Close()
objConnection.Close()28DataAdapterDataAdapter也是數(shù)據(jù)提供程序的一個子組件。與Connection和Command類一樣,DataAdapter類也存在于access、OLEDB、SQLServer和Oracle中DataAdapter類是數(shù)據(jù)庫和程序之間的橋梁,它可以執(zhí)行Command對象,從數(shù)據(jù)庫中檢索數(shù)據(jù),再填充到DataSet對象中,或?qū)ataSet對象插入、更新和刪除數(shù)據(jù)庫中DataAdapter用于填充DataSet和更新數(shù)據(jù)源。29DataSet
dataset可以看成是DataTable的集合.用于存儲多個表.
具有類似數(shù)據(jù)庫的結(jié)構(gòu):DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接.充分利用了客戶端資源也大大降低了數(shù)據(jù)庫服務(wù)器的壓力
微軟公司在推出DataSet時就考慮到各種數(shù)據(jù)源的多樣性、復(fù)雜性。在.Net中,無論什么類型數(shù)據(jù)源,它都會提供一致的關(guān)系編程模型,好處就是屏蔽了不同數(shù)據(jù)庫之間的差異,從而獲取一致的編程模型。
30CommandBuilder創(chuàng)建適配器的命令生成器DimcmdbAsSqlCommandBuilder=NewSqlCommandBuilder(adapter)命令生成器的作用:使用CommandBuilder需要注意以下幾點(diǎn):1、只有當(dāng)DataAdapter操作單個數(shù)據(jù)庫表時,才可以利用CommandBuilder對象自動生成DataAdapter的DeleteCommand、InsertCommand和UpdateCommand。2、為了自動生成命令,必須設(shè)置SelectCommand屬性。CommandBuilder的作用是自動生成適配器的插入、更新、刪除的SQL語句因此在創(chuàng)建CommandBuilder的時候需要將適配器作為構(gòu)造函數(shù)的參數(shù)31DataAdapter
DataAdapter常用的屬性和方法:屬性或方法功能說明SelectCommand屬性查詢數(shù)據(jù)的命令I(lǐng)nsertCommand屬性插入數(shù)據(jù)的命令UpdateCommand屬性更新數(shù)據(jù)的命令DeleteCommand屬性刪除數(shù)據(jù)的命令Fill()方法用于填充或刷新DataSetUpdate()方法將DataSet中的數(shù)據(jù)更新到數(shù)據(jù)庫里DimadapterAsSqlDataAdapter=NewSqlDataAdapter("Select*fromUserDetails",conn)32DataSet
創(chuàng)建數(shù)據(jù)集對象:填充數(shù)據(jù)集:訪問數(shù)據(jù)集中的表:DimdsAsDataSet=NewDataSet()adapter.Fill(ds)adapter.Fill(ds,"User")'將數(shù)據(jù)填充到數(shù)據(jù)集中,并給表起一個標(biāo)識名"User"ds.Tables(0)‘?dāng)?shù)據(jù)集中的第一張表ds.Tables("User")'數(shù)據(jù)集中的標(biāo)識名為"User"的表33DataTable
和DataRow
DataTable表示數(shù)據(jù)集中的表,它是DataSet中常用的對象,與數(shù)據(jù)庫中的表的概念十分相似。DataRow表示是表中的數(shù)據(jù)行:'創(chuàng)建一個新行DimrowAsDataRow=userTabel.NewRow()'通過列的索引,給列賦值row(0)=12'通過列名,給列賦值
row("UserName")="zkl" '增加行Table.Rows.Add(Row) ‘創(chuàng)建一個新表DimtableAsDataTable=DataSet.tables("User")
34ADO.NET有以下幾個核心組件組成:ConnectionCommandDataReaderDataAdapterDataSetConnection用于創(chuàng)建應(yīng)用程序和數(shù)據(jù)庫之間的連接Command用于執(zhí)行SQL語句和存儲過程,實(shí)現(xiàn)對數(shù)據(jù)的添加、刪除、更新、查詢等各種操作。小結(jié)-135小結(jié)-2DataReader是一種常用的數(shù)據(jù)讀取工具,能夠以連接的、向前的方式訪問數(shù)據(jù),可以執(zhí)行SQL語句或者存儲過程。DataAdapter用于填充DataSet和更新數(shù)據(jù)源,可以在DataSet對象和數(shù)據(jù)源之間進(jìn)行數(shù)據(jù)交互。DataSet對象用于緩存數(shù)據(jù)庫中的數(shù)據(jù),具有類似數(shù)據(jù)庫的結(jié)構(gòu),如表、列、關(guān)系和約束等。3637填充GridView1的代碼如下:DimconstrAsString="server=PC-201204071320;database=travel;uid=linjiahua;pwd=830117“DimconnAsSqlConnection=NewSqlConnection(constr)conn.Open()DimdaAsSqlDataAdapterda=NewSqlDataAdapter("select*frombase_Position",conn)DimdsAsDataSet=NewDataSet()da.Fill(ds)GridView1.DataSource=dsGridView1.DataBind()
conn.Close()38GridView1中的“選擇”功能代碼如下:
DimindexAsInteger=e.NewSelectedIndexTextBox1.Text=GridView1.DataKeys(index).Value.ToString()DimconnAsSqlConnectionDimconstrAsStringconstr="server=PC-201204071320;database=travel;uid=linjiahua;pwd=830117"conn=NewSqlConnection(constr)conn.Open()Dimsql1AsString="select*frombase_Positionwhereposition_id='"+
TextBox1.Text+"'“DimcmdAsSqlCommand=NewSqlCommand(sql1,conn)DimdrAsSqlDataReader=cmd.ExecuteReader()dr.Read()TextBox2.Text=dr.GetString(1)DropDownList1.SelectedValue=dr.GetString(2)dr.Close()conn.Close()39“更新”功能的代碼如下:DimconnAsSqlConnectionDimconstrAsStringconstr="server=PC-201204071320;database=travel;uid=linjiahua;pwd=830117"conn=NewSqlConnection(constr)conn.Open()DimsqlAsString
sql="updatebase_positionsetpName='"+TextBox2.Text+"',dept_id='"+DropDownList1.SelectedValue+"'wherepositi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型城鎮(zhèn)化建設(shè)項(xiàng)目勞務(wù)分包合同-@-1
- 2025年電燙板項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度教育產(chǎn)業(yè)并購擔(dān)保合同
- 2025年度機(jī)關(guān)單位食堂后勤保障服務(wù)承包合同
- 2025年度智能安防監(jiān)控系統(tǒng)安裝維護(hù)技術(shù)服務(wù)合同范本
- 離異貧困申請書范文
- 2025年中國航空鋼繩行業(yè)市場發(fā)展現(xiàn)狀及投資潛力預(yù)測報(bào)告
- 2025年度危險(xiǎn)品包裝運(yùn)輸合同正規(guī)格式(安全包裝規(guī)范)
- 新型換氣扇行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報(bào)告
- 2025年度建筑工程合同糾紛調(diào)解簡易合同編制規(guī)范
- 《工作場所安全使用化學(xué)品規(guī)定》
- 2022年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)考試筆試試題及答案解析
- 市政工程設(shè)施養(yǎng)護(hù)維修估算指標(biāo)
- 課堂嵌入式評價及其應(yīng)用
- 《管理學(xué)基礎(chǔ)》完整版課件全套ppt教程(最新)
- 短視頻:策劃+拍攝+制作+運(yùn)營課件(完整版)
- 基金會財(cái)務(wù)報(bào)表審計(jì)指引
- 藍(lán)色卡通風(fēng)好書推薦教育PPT模板
- 2022年江蘇省泰州市中考數(shù)學(xué)試題及答案解析
- 石家莊鐵道大學(xué)四方學(xué)院畢業(yè)設(shè)計(jì)46
- 智能化系統(tǒng)培訓(xùn)
評論
0/150
提交評論