国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ADO.NET的數(shù)據(jù)庫訪問技術研究與應用

2016-07-22 18:49成孝俊
電腦知識與技術 2016年16期

成孝俊

摘要:隨著網(wǎng)絡的發(fā)展,越來越多的應用程序需要通過網(wǎng)絡進行數(shù)據(jù)傳遞,大大改變了應用程序的設計方式。為此 Microsoft結合.NET框架為數(shù)據(jù)訪問提供了全新的ADO.NET數(shù)據(jù)訪問模型。該文介紹了ADO.NET的體系結構與ADO.NET數(shù)據(jù)訪問模式,并通過代碼示例簡要說明了ADO.NET環(huán)境下基于連接的數(shù)據(jù)訪問模式。

關鍵詞:ADO.NET;數(shù)據(jù)訪問模式;數(shù)據(jù)庫訪問

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)16-0001-02

ADO.NET.NET Framework以目前業(yè)界認可與廣泛使用的XML為基礎,為.NET開發(fā)人員提供了一組類。通過這些類,程序開發(fā)人員可以使用一致的方法來訪問各種數(shù)據(jù)源,包括SQL Server數(shù)據(jù)庫、Oracle數(shù)據(jù)源、ODBC數(shù)據(jù)源、OLE DB數(shù)據(jù)源以及XML文件等。

ADO.NET作為一種全新的、功能強大的數(shù)據(jù)庫訪問技術,它可作為橋梁將應用程序的用戶界面與后臺的數(shù)據(jù)庫聯(lián)系起來,前臺的應用程序可以通過ADO.NET數(shù)據(jù)庫訪問技術連接到不同類型的數(shù)據(jù)源,進而對數(shù)據(jù)源中的數(shù)據(jù)進行檢索、插入、修改和刪除等操作,還可以只進只讀的方式快速訪問數(shù)據(jù)庫中的數(shù)據(jù)。系統(tǒng)用戶與應用程序之間進行的交互可以概括為如圖1所示的過程。

1 ADO.NET數(shù)據(jù)庫訪問技術的體系結構

ADO.NET數(shù)據(jù)庫訪問技術主要由數(shù)據(jù)提供程序(.NET Framework Data Provider)和數(shù)據(jù)集(DataSet)兩個核心組件組成。

1.1 數(shù)據(jù)提供程序.NET Framework Data Provider

.NET Framework數(shù)據(jù)提供程序由四個核心類組成,分別是Connection 類、Command 類、DataReader 類和DataAdapter 類。Connection對象負責管理與SQL Server數(shù)據(jù)庫的連接;Command對象負責執(zhí)行SQL命令并返回執(zhí)行結果;DataReader對象表示從數(shù)據(jù)源中獲取的只進只讀的數(shù)據(jù)流;DataAdapter對象可以隱藏應用程序與Connection對象、Command對象交互的具體細節(jié),完成DataSet和數(shù)據(jù)源之間的數(shù)據(jù)交換。

.NET Framework數(shù)據(jù)提供程序通過建立到數(shù)據(jù)源的連接、執(zhí)行相關的SQL操作命令檢索數(shù)據(jù)庫中的數(shù)據(jù)。用戶可以直接處理從數(shù)據(jù)庫源中檢索到的數(shù)據(jù),也可以將檢索到的數(shù)據(jù)放入DataSet對象中進行處理。DataAdapter對象通過.NET Framework數(shù)據(jù)提供器與DataSet建立聯(lián)系,從而使DataSet對象可以從多個不同的數(shù)據(jù)源中獲取數(shù)據(jù)。

1.2 數(shù)據(jù)集DataSet

數(shù)據(jù)集作為ADO.NET技術中的又一核心組件,通過它可以實現(xiàn)以斷開連接的模式對數(shù)據(jù)庫進行訪問。它是一個與數(shù)據(jù)源無關的內(nèi)存數(shù)據(jù)表示方法,用于在內(nèi)存中高速緩存關系型數(shù)據(jù)。數(shù)據(jù)集好比是一個簡化后的關系數(shù)據(jù)庫,其中也包含各種數(shù)據(jù)庫對象,比如數(shù)據(jù)表對象、數(shù)據(jù)行對象、數(shù)據(jù)列對象、表關系對象等。它是實現(xiàn)斷開連接的環(huán)境下進行數(shù)據(jù)庫訪問的核心組件。

2 ADO.NET數(shù)據(jù)訪問模式

ADO.NET提供了基于連接的訪問和斷開連接的訪問模式。

2.1 基于連接的訪問模式

在基于連接的訪問模式中,應用程序對數(shù)據(jù)庫中的數(shù)據(jù)進行檢索、增刪改等操作時,應用程序需要始終保持與數(shù)據(jù)源的連接。在連接的環(huán)境下,通過直接執(zhí)行命令對象的SQL命令來對數(shù)據(jù)庫進行操作。當使用SQL命令直接操作數(shù)據(jù)庫時,在執(zhí)行SQL命令之前必須先手動打開連接對象,命令執(zhí)行完成后還須手動關閉連接,命令的執(zhí)行依賴于與數(shù)據(jù)庫的連接。

2.2 斷開連接的訪問模式

在斷開連接的環(huán)境中,當應用程序從數(shù)據(jù)源中讀取數(shù)據(jù)時,DataAdapter對象會自動建立到數(shù)據(jù)源的連接;DataAdapter對象獲取數(shù)據(jù)并填充到數(shù)據(jù)集之后,就自動斷開到數(shù)據(jù)源的連接;當應用程序向數(shù)據(jù)源中保存數(shù)據(jù)時,DataAdapter對象會再次建立到數(shù)據(jù)源的連接,將數(shù)據(jù)集更新后中的數(shù)據(jù)同步更新到數(shù)據(jù)源,并在數(shù)據(jù)保存之后自動斷開到數(shù)據(jù)源的連接。

DataAdapter 對象作為數(shù)據(jù)源和DataSet 對象之間進行數(shù)據(jù)交互的橋梁,它負責通過連接對象和命令對象與不同類型的數(shù)據(jù)源打交道并將檢索出的數(shù)據(jù)傳遞給DataSet對象,而DataSet對象只負責對接收到的數(shù)據(jù)進行處理,處理好的數(shù)據(jù)再通過DataAdapter 對象更新到數(shù)據(jù)源。

3 使用C#對SQL Server數(shù)據(jù)庫進行訪問

本實驗以SQL Server 2008 Express作為數(shù)據(jù)源,使用C#語言在Visual Studio 2010平臺下進行數(shù)據(jù)庫訪問的測試,訪問的數(shù)據(jù)數(shù)據(jù)庫名稱為testDB。在System.Data.SqlClient命名空間下,提供了ADO.NET訪問SQL Server數(shù)據(jù)源的四個核心類:SqlConnection 類、SqlCommand 類、SqlDataReader 類和SqlDataAdapter 類。

3.1 連接數(shù)據(jù)庫

訪問數(shù)據(jù)庫首先需要建立到數(shù)據(jù)庫的連接。通過指定的連接字符串創(chuàng)建SqlConnection對象可以實現(xiàn)數(shù)據(jù)庫連接操作。所謂連接字符串,就是這樣一組被格式化的鍵值對,它告訴ADO.NET數(shù)據(jù)源在哪里,需要什么樣的數(shù)據(jù)格式,提供什么樣的訪問信任級別以及其他任何包括連接的相關信息。

連接字符串中常用屬性說明如下:

Data Source指定需要連接的服務器名稱,如果使用的SQL Server是Express版本,則需要在服務器名后加\SQLEXPRESS(忽略大小寫);

Initial Catalog:用來指定需要連接使用的數(shù)據(jù)庫名稱;

User ID和Password分別表示數(shù)據(jù)庫服務器賬號和數(shù)據(jù)庫服務器密碼;

Integrate Security用來指定驗證方式,當為false時,將在連接中指定用戶ID和密碼;當為true時,將使用當前的Windows帳戶憑據(jù)進行身份驗證。

下面的代碼示例演示如何創(chuàng)建一個連接對象,服務器為本地服務器,訪問的數(shù)據(jù)庫為test,驗證方式為集成驗證。

SqlConnection sqlConn = new SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=testDB;Integrated Security=true");

3.2 檢索并顯示數(shù)據(jù)

有兩種方式對朋數(shù)據(jù)庫中檢索出的數(shù)據(jù)記錄進行操作:一種是通過DataReader對象對檢索出的數(shù)據(jù)直接進行訪問;另一種則是通過DataAdapter對象和DataSet對象配合進行操作。

1)使用DataReader對象訪問檢索的數(shù)據(jù)

為了能夠檢索出SQL Server數(shù)據(jù)庫中的數(shù)據(jù),需要借助于SqlCommand對象。通過指定連接字符串和SQL命令就可以創(chuàng)建一個SqlCommand對象,該對象提供ExecuteNonQuery、ExecuteReader、ExecuteScaler等三種不同的執(zhí)行方法。下面的代碼演示了基于上文中的連接對象創(chuàng)建一個SqlCommand對象以實現(xiàn)數(shù)據(jù)查詢。

4 結束語

ADO.NET作為一種全新的、簡單但高效的數(shù)據(jù)庫訪問技術,有著鮮明的特點,比如具有執(zhí)行速度快、編程方式靈活、功能強大、使用方便等等。使用ADO.NET數(shù)據(jù)訪問技術,能夠以高效快捷的方式對絕大部分數(shù)據(jù)源進行訪問,滿足了大多數(shù)用戶的需求,是.net應用程序和后臺數(shù)據(jù)庫之間的一座重要橋梁。

參考文獻:

[1] 張牧笛, 羅驅波, 白靜宜. ADO.NET數(shù)據(jù)訪問模型研究[J]. 微計算機信息, 2008(6).

[2] 高俊. ADO.Net數(shù)據(jù)訪問技術分析[J]. 河南科技, 2011(11).

[3] 張偉民, 王亞林. ADO.NET訪問數(shù)據(jù)庫的技巧探討[J]. 微計算機信息, 2011(11).

[4] 徐照興, 王斌. ADO.NET訪問數(shù)據(jù)庫的方法及步驟[J]. 中國科技信息, 2009(22).