999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ADO.NET數據庫訪問技術的研究與實現

2009-10-29 10:07:54徐祥濤
中國新技術新產品 2009年17期

徐祥濤

摘要:ADO.NET是基于.NET平臺下的數據庫訪問技術,本文闡述了ADO.NET的功能、結構和對象模型,給出了基于C#.NET的ADO.NET技術訪問數據庫的具體實現過程,并給出了部分實現代碼。

關鍵詞:ADO.NET; 數據集; 數據提供程序

1 引言

數據庫訪問技術一直是數據庫應用系統開發中的難點和重點,也是每個數據庫軟件開發者必須要考慮的環節。ADO.NET微軟最新的數據訪問技術,是數據庫應用程序和數據源間溝通的橋梁,主要提供一個面向對象的數據存取架構,用來開發數據庫應用程序。

2 ADO.NET概述

ADO.NET是.NET Framework提供的一系列類,提供了對關系數據、XML和應用程序數據的訪問,是.NET Framework 中最重要的組成部分。

2.1 ADO.NET的功能

ADO.NET是連接系統前、后端的關鍵。在典型的數據庫應用體系結構中,用戶和數據庫系統的交互過程是:首先,用戶通過用戶界面向系統發出數據操作的請求,用戶界面接收請求后傳到ADO.NET;然后,ADO.NET分析用戶請求,并通過數據庫訪問接口于數據源交互,向數據源發送SQL指令,并從數據源獲取數據;最后,ADO.NET將數據訪問結果傳回用戶界面。

2.2 ADO.NET的基本結構

ADO.NET將其組件區分為:"數據存取"與"數據操作"兩大類,負責完成這些處理的兩大中心組件是:數據集(DateSet)和數據提供程序(Data Providers)。數據集代表了實際的數據而數據提供程序就是用來連接數據庫、執行命令和提取結果的。數據提供程序有兩種:一種是SQL Server數據提供程序;另一種是一般的數據提供程序,它可以與任何一個OLEDB數據源通信。數據提供程序包含下列組件專門負責數據操作并且能夠以快速、順序和只讀方式來存取數據:Connection、Command、DataReader和DataAdapter。

3 使用ADO.NET訪問數據庫

對數據庫進行操作,首先是與數據庫建立連接,其次發出SQL命令或存儲過程進行相應操作,之后由數據集返回所需的數據記錄,最后將修改后的結果返回到數據庫。

3.1 連接數據庫

要使用ADO.NET從數據庫發送和檢索數據,必須首先創建對數據庫的連接。連接是客戶應用程序和ADO.NET之間的管道,在ADO.NET的兩種工作模式(連接模式和非連接模式)中都使用。ADO.NET提供了兩個類來創建連接,第一個是通用的OleDbConnection類,它創建處理不同的數據庫類型的連接。第二個是SqlConnection類,它創建的連接只處理只處理SQL Server數據庫,并優化了性能。

本文以連接SQL Server數據庫為例,首先建立一個名為SCN的SqlConnection對象,再使用ConnectionString屬性來設置要連接的數據庫種類和所在的位置,最后用Open方法來打開數據庫,如下所示:

SqlConnection SCN = new SqlConnection();

SCN. ConnectionString =

"Persist Security Info=False;User id=sa;pwd=frock;database=Student;server=(local)";

SCN.Open();

3.2 操作數據庫

創建了數據庫連接之后,下一步就是通過連接發送請求來選擇數據。對數據庫執行命令操作,如進行數據的查詢、修改、添加、刪除等,實際上就是傳送SQL指令,SQL指令封裝在Command對象中。操縱數據庫可以通過多種方式來實現,常用的對象是SqlCommand對象(表示一個SQL操作或者一個存儲過程)和SqlDataAdpater對象(把一個SqlCommand提交給SQL Server數據庫)。

本文以SqlCommand對象為例,其過程為:先定義一個SqlCommand對象,再通過設置它的CommandText屬性來指定對數據庫進行的操作(SQL語句可以是查詢、添加、修改和刪除等),然后指明SqlCommand對象所用到的SqlConnection對象。

SqlCommand SCM = new SqlCommand();

SCM.CommandText = "select * from tdbStudent";

SCM.Connection = SCN;

還有一種更簡便的方法如下:

SqlCommand SCM = new SqlCommand("select * from tdbStudent", SCN);

根據不同的操作目的選擇執行命令的方式,SqlCommand 特別提供了以下對 SQL Server 數據庫執行命令的方法。

3.3 獲取數據集

ADO.NET 支持面向流的數據訪問(如DataReader 對象)和基于集的數據訪問(如DataSet 對象)。

3.3.1 面向流的數據訪問

可以從數據庫中順向逐條從數據庫中讀取由SELECT 命令返回的只讀數據流,而且當前內存中每次只存一條記錄。DataReader對象的讀取數據方式是先通過Connection 對象和數據庫聯機,再通過Command 對象的ExecuteReader 方法執行SQLSELECT 命令獲取查詢的數據, 再通過DataReader 對象的屬性和方法,將獲取的數據以只讀方式從當前的數據記錄順向逐條處理,最后將數據放入內存或直接顯示在窗體上。但是要注意在DataReader 開啟時, 必須和數據庫一直保持聯機, 此時Connection 只提供給DataReader 使用, 必須等到DataReader 關閉后, 才允許執行其他Connection 命令。DataReader 適用于只需返回一個簡單的只讀記錄集的情況。DataReader 最主要的方法是Read, 用于從查詢結果中獲取數據行。DataReader 每執行一次Read()方法, 就返回一個Bool 值, 說明是否有數據可讀, 并且所檢索的數據向下走一行。

SqlDataReader SDR;

SDR = CM.ExecuteReader();

this.lstUser.Items.Clear();

while (DR.Read())

this.lstUser.Items.Add(DR[0].ToString());

3.3.2 面向集的數據訪問

數據適配器, 包含將數據從數據庫中取出的方法, 和將數據寫回數據庫的方法, 是數據庫和DataSet 之間溝通的橋梁。DataAdapter 對象使用Command 對象執行SQL 命令, 將從數據庫獲取的數據送到DataSet, 此時便可使用DataTable 對象來存取數據表, 將DataSet里面的數據經過處理后再送回數據庫。

SqlDataAdapter SDAP = new SqlDataAdapter();

SDA.SelectCommand = selectCMD;

DataSet DS = new DataSet();//4 填充DataSet

SDAP.Fill(DS, "student");

Page.Response.Write("

"); //5 顯示其中的DataTable對象中的數據

for (int i = 0; i < DS.Tables[0].Rows.Count; i++)

{

Page.Response.Write("

");

for (int j = 0; j < DS.Tables[0].Columns.Count; j++)

{

Page.Response.Write("

");

}

Page.Response.Write("

");

}

Page.Response.Write("

" + DS.Tables[0].Rows[i].ItemArray[j] + "
");

4小結

ADO.NET是與數據源交互的.NET技術。有許多的Data Providers,它將允許與不同的數據源交流——取決于它們所使用的協議或者數據庫。然而無論使用什么樣的Data Provider,你將使用相似的對象與數據源進行交互。

參考文獻

[1] 劉乃麗.ASP.NET 2.0 網絡開發詳解[M].北京:電子工業出版社.2008.

[2] 茅健.Visual Basic.NET+SQL Server全程指南[M].北京:電子工業出版社.2008.

[3] Michael Ekedahl著,馬海軍,楊繼萍等譯. Visual Basic.NET程序設計高級教程[M].北京:清華大學出版社.2005.

主站蜘蛛池模板: 午夜国产精品视频| 999福利激情视频| 91小视频在线| 成年A级毛片| 国产成年女人特黄特色毛片免| 伊人国产无码高清视频| 国产尤物视频网址导航| 五月天久久综合| 亚洲欧洲日韩久久狠狠爱| 午夜精品区| 亚洲成人免费看| 麻豆精品在线| 伊人久久久久久久| www亚洲天堂| 在线国产三级| 欧美精品v欧洲精品| AV色爱天堂网| 五月六月伊人狠狠丁香网| 国产AV无码专区亚洲A∨毛片| 欧美精品色视频| 波多野结衣一区二区三视频| 91口爆吞精国产对白第三集| 日韩国产 在线| AV网站中文| 四虎永久免费地址在线网站| 国产精品成人一区二区不卡| 免费女人18毛片a级毛片视频| 亚洲精品欧美日韩在线| 国产a网站| 国产人成在线观看| 国产精品19p| 国产69精品久久| 在线精品亚洲一区二区古装| 国产女人18毛片水真多1| 欧美日韩精品综合在线一区| 人妻熟妇日韩AV在线播放| 亚洲av片在线免费观看| 丁香六月激情综合| 亚洲日韩高清在线亚洲专区| 日韩免费毛片| 欧美日韩国产系列在线观看| 九九热这里只有国产精品| 好吊妞欧美视频免费| 国产精品99在线观看| 国产成人亚洲无吗淙合青草| 五月天综合网亚洲综合天堂网| 都市激情亚洲综合久久| 一级香蕉视频在线观看| 四虎影视库国产精品一区| 亚洲天堂在线视频| 日本成人福利视频| 91成人在线观看| 无码中文字幕乱码免费2| 免费Aⅴ片在线观看蜜芽Tⅴ| 九色视频一区| 91小视频在线| 无码中文字幕乱码免费2| 成人夜夜嗨| 亚洲天堂免费观看| 久久综合亚洲色一区二区三区| 国产成人福利在线视老湿机| 欧美日韩国产高清一区二区三区| 久久这里只精品热免费99| 99热这里只有精品免费国产| 日本午夜视频在线观看| 性欧美在线| 国产日韩精品欧美一区喷| 毛片三级在线观看| 1024你懂的国产精品| 91久久国产综合精品女同我| 精品撒尿视频一区二区三区| 国产福利小视频在线播放观看| igao国产精品| 中文字幕乱码二三区免费| 国产又粗又爽视频| 福利姬国产精品一区在线| 久久综合干| 97超爽成人免费视频在线播放| 国产一级精品毛片基地| 超薄丝袜足j国产在线视频| 波多野结衣二区| 国产久草视频|