<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      回頭再學(xué)Asp.net系列--基礎(chǔ)篇(四)

      2011-10-15 15:51  熬夜的蟲(chóng)子  閱讀(361)  評(píng)論(0)    收藏  舉報(bào)

       

      .Net的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)

      在windows系統(tǒng)下的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)主要有:ODBC(開(kāi)放數(shù)據(jù)庫(kù)連接),DAO(數(shù)據(jù)訪問(wèn)對(duì)象),RDO(遠(yuǎn)程數(shù)據(jù)對(duì)象),JDBC(java數(shù)據(jù)庫(kù)連接),OLE DB(對(duì)象鏈接嵌入數(shù)據(jù)庫(kù)),ADO(ActiveX數(shù)據(jù)對(duì)象),隨著微軟.net框架的推出,基于.net平臺(tái)的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)也在原來(lái)ado的基礎(chǔ)上做出了重大的改進(jìn),升級(jí)到了全新的ado.net數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),ado.net也是.net平臺(tái)上最重要的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。

      使用 DAO 和 MFC DAO 類,可以訪問(wèn)下列數(shù)據(jù)源:

      1.用數(shù)據(jù)庫(kù)引擎版本為 1.x、2.x 和 3.0 的 Microsoft Access 或 Microsoft Visual Basic 創(chuàng)建的、使用 Microsoft Jet 數(shù)據(jù)庫(kù)引擎的數(shù)據(jù)庫(kù)。
      2.可安裝的 ISAM 數(shù)據(jù)庫(kù),包括: dBASE III、dBASE IV 和 dBASE 5.0;Paradox 3.x、4.x 和 5.x 版
      3.開(kāi)放式數(shù)據(jù)庫(kù)連接 (ODBC) 數(shù)據(jù)庫(kù),包括但不僅限于 Microsoft SQL Server、SYBASE SQL Server 和 ORACLE Server。若要訪問(wèn) ODBC 數(shù)據(jù)庫(kù),必須具有希望訪問(wèn)的數(shù)據(jù)庫(kù)的適當(dāng) ODBC 驅(qū)動(dòng)程序。有關(guān) Visual C++ 此版本中包括的 ODBC 驅(qū)動(dòng)程序列表以及有關(guān)獲取其他驅(qū)動(dòng)程序的信息,請(qǐng)參見(jiàn) ODBC 驅(qū)動(dòng)程序列表。
      4.Microsoft Excel 3.0、4.0、5.0 和 7.0 版工作表。
      5.Lotus WKS、WK1、WK3 和 WK4 電子表格。
      6.文本文件。

       

      OLE DB 是用于訪問(wèn)數(shù)據(jù)的基于 COM 的應(yīng)用程序編程接口 (API)。OLE DB 支持訪問(wèn)以 OLE DB 提供程序可以使用的任何格式(數(shù)據(jù)庫(kù)、電子表格、文本文件等)存儲(chǔ)的數(shù)據(jù)。每個(gè) OLE DB 提供程序從某一特定類型的數(shù)據(jù)源(例如 SQL Server 數(shù)據(jù)庫(kù)、Microsoft Access 數(shù)據(jù)庫(kù)或 Microsoft Excel 電子表格)公開(kāi)數(shù)據(jù)。

      OLE DB對(duì)ODBC的兼容性,允許OLE DB訪問(wèn)現(xiàn)有的ODBC數(shù)據(jù)源。其優(yōu)點(diǎn)很明顯,由于ODBC相對(duì)OLE DB來(lái)說(shuō)使用得更為普遍,因此可以獲得的ODBC驅(qū)動(dòng)程序相應(yīng)地要比OLE DB的要多。這樣不一定要得到OLE DB的驅(qū)動(dòng)程序,就可以立即訪問(wèn)原有的數(shù)據(jù)系統(tǒng)。
      提供者位于OLE DB層,而驅(qū)動(dòng)程序位于ODBC層。

       

      ADO.NET是微軟.NET框架的一部分,它由一組工具和層組成,應(yīng)用程序可以借此與基于文件或基于服務(wù)器的數(shù)據(jù)存儲(chǔ)很輕松地進(jìn)行通信和管理。在.NET框架中,ADO.NET類庫(kù)位于System.Data命名空間下。這些類庫(kù)包括連接到數(shù)據(jù)源、執(zhí)行命令以及在存儲(chǔ)、操作和獲取數(shù)據(jù)等功能。對(duì)于不同的應(yīng)用需要,ADO.NET設(shè)計(jì)了兩種訪問(wèn)數(shù)據(jù)庫(kù)的模式:使用DataReader對(duì)象進(jìn)行基于連接的訪問(wèn)和使用DataAdapter對(duì)象進(jìn)行的非連接的訪問(wèn)。ADO.NET與以前的數(shù)據(jù)訪問(wèn)技術(shù)相比的不同之處,就是它可以讓應(yīng)用程序與數(shù)據(jù)庫(kù)以完全非連接的數(shù)據(jù)緩存的方式來(lái)交互以實(shí)現(xiàn)離線操作數(shù)據(jù)。過(guò)去使用諸如遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)來(lái)實(shí)現(xiàn)這樣的功能,但是那只是在已有的技術(shù)上做一些修正。而ADO.NET則是基于這樣的需求從頭開(kāi)始搭建的。

      Connection對(duì)象提供與數(shù)據(jù)源的連接;Command對(duì)象用于返回?cái)?shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲(chǔ)過(guò)程以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫(kù)命令;DataReader從數(shù)據(jù)源中得到高性能的數(shù)據(jù)流; DataAdapter是連接DataSet對(duì)象和數(shù)據(jù)源的橋梁。

      DataReader和DataSet之間的主要區(qū)別是前者的內(nèi)存開(kāi)銷要比后者更小,當(dāng)不需要在緩沖區(qū)中進(jìn)行數(shù)據(jù)修改等操作,也不需要索引隨機(jī)訪問(wèn)數(shù)據(jù)記錄時(shí),DataReader是一個(gè)更好的選擇,它能提高程序的性能。DataReader是一個(gè)一次只能讓你訪問(wèn)單行記錄信息的對(duì)象,其含義是,不管結(jié)果集的大小,用DataReader來(lái)回移動(dòng)該結(jié)果集時(shí),一次只有單行記錄加載到內(nèi)存中;另一方面,DataSet是專門為內(nèi)存緩存大量數(shù)據(jù)而設(shè)計(jì)的。

      DataReader和DataSet兩種類都支持多個(gè)結(jié)果集的概念,但實(shí)現(xiàn)方式不同,DataReader通過(guò)NextResult方法來(lái)支持訪問(wèn)多個(gè)結(jié)果集,而DataSet將多個(gè)結(jié)果集加載到其中不同的DataTable對(duì)象中。

      接池(Connection Pool)是連接對(duì)象的集合體,實(shí)際上是指擁有一定數(shù)量的連接對(duì)象的“緩沖存儲(chǔ)池”。連接池內(nèi)部提供一種管理機(jī)制,能控制連接池內(nèi)部邊接對(duì)象的個(gè)數(shù)、使用次數(shù)和時(shí)間,對(duì)應(yīng)用程序提供獲取和釋放連接的接口。

       

          在需要高度并發(fā)/高度可用應(yīng)用程序中,大部分時(shí)間里用戶可能會(huì)保持一個(gè)打開(kāi)的連接,而且不是積極地使用該連接,因?yàn)橛脩粼谑褂脩?yīng)用程序的其他功能,意識(shí)到這一點(diǎn)很重要。應(yīng)用程序可以把其寶貴的資源――一個(gè)打開(kāi)的連接――從本質(zhì)上切割成時(shí)間片斷,并且在多個(gè)用戶之間來(lái)池化它。連接池在池中提供一些連接對(duì)象,對(duì)同一個(gè)數(shù)據(jù)源連接的不同請(qǐng)求可以用同一個(gè)連接對(duì)象來(lái)處理,這樣就避免了重新建立一個(gè)連接的操作。
       建立連接池能顯著地提高應(yīng)用程序的性能和可伸縮性。連接池是根據(jù)每個(gè)唯一的連接字符串創(chuàng)建的,當(dāng)創(chuàng)建一個(gè)池后,將按最小池大小的要求創(chuàng)建多個(gè)連接對(duì)象并將其添加到該池中。在請(qǐng)求連接時(shí),將根據(jù)需要添加到池中,直至達(dá)到連接池上限。當(dāng)達(dá)到上限且沒(méi)有可用的連接,則該請(qǐng)求將會(huì)被排入等待隊(duì)列。當(dāng)連接被釋放回池中時(shí),連接池管理程序通過(guò)重新分配連接來(lái)滿足這些請(qǐng)求[12]。
      當(dāng)請(qǐng)求SqlConnection對(duì)象時(shí),如果存在可用的連接,則將從池中獲取該對(duì)象。若要成為可用連接,該連接當(dāng)前必須未被使用,具有匹配的事務(wù)上下文或者不與任何事務(wù)上下文相關(guān)聯(lián),并且具有與服務(wù)器的有效連接。使用ADO.NET的連接池實(shí)際上是很簡(jiǎn)單的,因?yàn)槟悴⒉恍枰鍪裁炊鴥H用默認(rèn)設(shè)置就能使用連接池;相反,如果你不想使用連接池,則需要顯式地關(guān)閉它。

      關(guān)閉連接:良好的應(yīng)用程序設(shè)計(jì)

      連接對(duì)象必須實(shí)現(xiàn)IDisposable接口。通常,IDisposable.Dispose方法是任何對(duì)象用于清除工作的方法,當(dāng)不再需要對(duì)象時(shí),對(duì)象的使用者可以調(diào)用此方法垃圾回收器會(huì)自動(dòng)釋放分配給該對(duì)象的內(nèi)存[14]。程序員在看到這個(gè)方法時(shí)都應(yīng)知道去調(diào)用它,而在C#和VB.NET 存在諸如using代碼塊這樣的結(jié)構(gòu),能自動(dòng)調(diào)用Dispose方法。

      ADO.NET連接對(duì)象完全遵循這樣的規(guī)則:它使用Dispose方法清空所有未分配的資源。除了清空未分配的資源外,Dispose方法還調(diào)用連接對(duì)象的close,使得連接可以在連接池準(zhǔn)備被重用。除了調(diào)用close外,Dispose只比Close方法多干了一點(diǎn)事情:Dispose清除了內(nèi)部集合從而清空了各種設(shè)置――諸如連接對(duì)象上的連接串,因此它可以讓垃圾收集器重用那些被具體連接對(duì)象所占用的內(nèi)存;但是,單獨(dú)調(diào)用Close方法能使實(shí)際的底層對(duì)象在連接池中變?yōu)榭芍赜谩U{(diào)用連接對(duì)象的Dispose方法可以讓我們不用再地調(diào)用連接的Close方法。它不僅確保了底層連接被池化,而且也確保了所分配的資源被垃圾收集;

       

       

       

       

       


       

       

      主站蜘蛛池模板: 国产亚洲精品AA片在线爽| 激情久久av一区二区三区| 雷波县| 亚洲激情一区二区三区在线| 日韩乱码人妻无码中文字幕视频 | 国产毛片欧美毛片久久久| 一区二区三区四区精品黄| 库伦旗| 一区二区三区四区自拍偷拍| 国产精品久久久久9999| 国产午精品午夜福利757视频播放| 国产成人精品国内自产色| 吃奶还摸下面动态图gif| 亚洲精品欧美综合二区| 日韩精品一区二区三区激情| 在线精品自拍亚洲第一区| 亚洲日本韩国欧美云霸高清| 国产高清在线精品一区二区三区| 深夜国产成人福利在线观看| 午夜福利在线观看6080| 国产精品一区二区三区激情| 屁屁影院ccyy备用地址| 国产精品女生自拍第一区| 日韩国产精品无码一区二区三区| 国产精品一区在线蜜臀| 内射囯产旡码丰满少妇| 国产午夜亚洲精品久久| 国产在线无码精品无码| 青青草国产自产一区二区| 国内精品卡一卡二卡三| 人人做人人澡人人人爽| 国产大陆av一区二区三区| 亚洲AV无码不卡在线播放| 精品国产高清中文字幕| 远安县| 婷婷综合缴情亚洲| 久国产精品韩国三级视频| 在线观看亚洲欧美日本| 麻豆亚洲自偷拍精品日韩另| 亚洲午夜亚洲精品国产成人| 成在线人视频免费视频|