日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

ADO.NET简介

發(fā)布時(shí)間:2023/12/18 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADO.NET简介 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
微軟數(shù)據(jù)訪問方式歷史階段 1,ODBC (Open Database Connectivity)是第一個(gè)使用SQL訪問不同關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)訪問技術(shù)。使用ODBC應(yīng)用程序能夠通過單一的命令操縱不同的數(shù)據(jù)庫(kù),而開發(fā)人員需要租的僅僅只是針對(duì)不同的應(yīng)用加入相應(yīng)的OBDC驅(qū)動(dòng) 2,DAO(Data Access Objects)不像OBDC那樣是面向C/C++程序員的,他是微軟提供給Visual Basic開發(fā)人員的一種簡(jiǎn)單的數(shù)據(jù)訪問方法,用于操控Access數(shù)據(jù)庫(kù) 3,RDO(Remote Data Objects)在使用DAO訪問不同的關(guān)系型數(shù)據(jù)庫(kù)的時(shí)候,jet引擎不得不在DAO和ODBC之間進(jìn)行命令的轉(zhuǎn)化,導(dǎo)致了性能的下降,而RDO的出現(xiàn)就順利成章了 4,OLE DB(Object Link and embed)隨著越來(lái)越多的數(shù)據(jù)以非關(guān)系型格式存儲(chǔ),需要一種型的架構(gòu)來(lái)提供這種應(yīng)用和數(shù)據(jù)源之間的無(wú)縫連接,基于COM(Component Object Model)的OLE DB應(yīng)運(yùn)而生了 5,ADO基于OLE DB之上的ADO更簡(jiǎn)單,更高級(jí),更合適C#程序員,同時(shí)消除了OLE DB的多種弊端,取而代之是微軟技術(shù)的發(fā)展趨勢(shì) ADO.NET簡(jiǎn)介 ADO.NET的名稱起源于ADO(ActiveX Data Objects)是一個(gè)COM組件庫(kù),也就是一個(gè)通用框架類庫(kù),該類庫(kù)鍵跨域所有存在的WindowsAPI函數(shù),簡(jiǎn)單來(lái)說(shuō)罵他是在.NET編程環(huán)境中使用的數(shù)據(jù)訪問接口 ADO.NET 是與C#和.NET Framework一起使用的類集的名稱,用于以關(guān)系型的,面向表的格式訪問數(shù)據(jù) ADO.NET被集成到.NET Framework中,可以用于任何.NET語(yǔ)言,尤其是C#語(yǔ)言 ADO.NET有兩部分構(gòu)成: 1,數(shù)據(jù)提供程序(Provider):它能和數(shù)據(jù)庫(kù)保持鏈接并且執(zhí)行SQL命令,操縱數(shù)據(jù)集。 2,數(shù)據(jù)集(DataSet):能與數(shù)據(jù)庫(kù)在斷開鏈接的情況下進(jìn)行數(shù)據(jù)庫(kù)的操作 ADO.NET技術(shù)中的五大對(duì)象 Connection Command DataReader DataAdapter DataSet Connection 類 和數(shù)據(jù)庫(kù)交互,必須連接它。連接幫助指明數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)名字、用戶名、密碼,和連接數(shù)據(jù)庫(kù)所需要的其它參數(shù)。Connection對(duì)象會(huì)被Command對(duì)象使用,這樣就能夠知道是在哪個(gè)數(shù)據(jù)源上面執(zhí)行命令。 與數(shù)據(jù)庫(kù)交互的過程意味著必須指明想要執(zhí)行的操作。這是依靠Command對(duì)象執(zhí)行的。開發(fā)人員使用Command對(duì)象來(lái)發(fā)送SQL語(yǔ)句給數(shù)據(jù)庫(kù)。Command對(duì)象使用Connection對(duì)象來(lái)指出與哪個(gè)數(shù)據(jù)源進(jìn)行連接。開發(fā)人員能夠單獨(dú)使用Command對(duì)象來(lái)直接執(zhí)行命令,或者將一個(gè)Command對(duì)象的引用傳遞給DataAdapter,它保存了一組能夠操作下面描述的一組數(shù)據(jù)的命令。 Command對(duì)象 成功與數(shù)據(jù)建立連接后,就可以用Command對(duì)象來(lái)執(zhí)行查詢、修改、插入、刪除等命令;Command對(duì)象常用的方法有ExecuteReader()方法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入數(shù)據(jù)可用ExecuteNonQuery()方法來(lái)執(zhí)行插入命令。 DataReader類 許多數(shù)據(jù)操作要求開發(fā)人員只是讀取一串?dāng)?shù)據(jù)。DataReader對(duì)象允許開發(fā)人員獲得從Command對(duì)象的SELECT語(yǔ)句得到的結(jié)果。考慮性能的因素,從DataReader返回的數(shù)據(jù)都是快速的且只是“向前”的數(shù)據(jù)流。這意味著開發(fā)人員只能按照一定的順序從數(shù)據(jù)流中取出數(shù)據(jù)。這對(duì)于速度來(lái)說(shuō)是有好處的,但是如果開發(fā)人員需要操作數(shù)據(jù),更好的辦法是使用DataSet。 DataSet對(duì)象 DataSet對(duì)象是數(shù)據(jù)在內(nèi)存中的表示形式。它包括多個(gè)DataTable對(duì)象,而DataTable包含列和行,就象一個(gè)普通的數(shù)據(jù)庫(kù)中的表。開發(fā)人員甚至能夠定義表之間的關(guān)系來(lái)創(chuàng)建主從關(guān)系(parent-child relationships)。DataSet是在特定的場(chǎng)景下使用――幫助管理內(nèi)存中的數(shù)據(jù)并支持對(duì)數(shù)據(jù)的斷開操作的。DataSet是被所有Data Providers使用的對(duì)象,因此它并不像Data Provider一樣需要特別的前綴 DataAdapter類 某些時(shí)候開發(fā)人員使用的數(shù)據(jù)主要是只讀的,并且開發(fā)人員很少需要將其改變至底層的數(shù)據(jù)源。同樣一些情況要求在內(nèi)存中緩存數(shù)據(jù),以此來(lái)減少并不改變的數(shù)據(jù)被數(shù)據(jù)庫(kù)調(diào)用的次數(shù)。DataAdapter通過斷開模型來(lái)幫助開發(fā)人員方便的完成對(duì)以上情況的處理。當(dāng)在一單批次的對(duì)數(shù)據(jù)庫(kù)的讀寫操作的持續(xù)的改變返回至數(shù)據(jù)庫(kù)的時(shí)候,DataAdapter 填充(fill)DataSet對(duì)象。DataAadapter包含對(duì)連接對(duì)象以及當(dāng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀取或者寫入的時(shí)候自動(dòng)的打開或者關(guān)閉連接的引用。另外,DataAdapter包含對(duì)數(shù)據(jù)的SELECT、INSERT、UPDATE和DELETE操作的Command對(duì)象引用。開發(fā)人員將為DataSet中的每一個(gè)Table都定義DataAadapter,它將為開發(fā)人員照顧所有與數(shù)據(jù)庫(kù)的連接。所以開發(fā)人員將做的工作是告訴DataAdapter什么時(shí)候裝載或者寫入到數(shù)據(jù)庫(kù) DataTable類 DataTable 是一個(gè)數(shù)據(jù)網(wǎng)格控件。它可以被應(yīng)用在 VB 和 ASP 上。它無(wú)須代碼就可以簡(jiǎn)單的綁定數(shù)據(jù)庫(kù)。它具有微軟風(fēng)格的用戶界面。 DataTable的實(shí)例化以及添加列: DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); DataRow dr = dt.NewRow(); object[] objs = { 1, "Name" }; dr.ItemArray = objs; dt.Rows.Add(dr); this.dataGridView1.DataSource = dt;

(一個(gè)舉例)

數(shù)據(jù)庫(kù)比作水源,存儲(chǔ)了大量的水(數(shù)據(jù)); Connection: 好比深入水中進(jìn)水口,保持與水的接觸,只有它與水進(jìn)行“鏈接”,其他對(duì)象才可以抽到水(訪問到數(shù)據(jù)) Command: 則像抽水機(jī),為抽水提供動(dòng)力和執(zhí)行方法,然后把水返給上面的”水管“ DataAdpter、DataReader: 就像輸水管,擔(dān)任著水的傳輸任務(wù),并起著橋梁的作用。 DataAdapter 是通過發(fā)動(dòng)機(jī)把水運(yùn)輸?shù)剿畮?kù)里面保持 DataReader 單向地直接把水送到需要水的用戶那里,所以要比水庫(kù)中轉(zhuǎn)一下速度更快, DataSet: 則是一個(gè)大水箱,把抽上來(lái)的水按著一定關(guān)系的池子進(jìn)行存放,即使撤掉“抽水裝置”(斷開鏈接,離線狀態(tài))也可以保持“水”的存在。這也正是ADO.NET的核心 DataTable: 則像是水庫(kù)中的每個(gè)獨(dú)立的水池子,分別存放不同種類的水,一個(gè)大水庫(kù)由多個(gè)這樣的水池子組成

總結(jié)

以上是生活随笔為你收集整理的ADO.NET简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。