剖析概括AOP.NET OracleDataReader對(duì)象
隨著AOP.NET的快速發(fā)展,AOP.NET有很多值得學(xué)習(xí)的地方,這里我們主要介紹AOP.NET OracleDataReader,包括介紹OracleDataAdapter對(duì)象等方面。AOP.NET OracleDataReader提供了幾個(gè)方法,在讀取數(shù)據(jù)的時(shí)候用這些方法可以對(duì)數(shù)據(jù)表中的數(shù)據(jù)按數(shù)據(jù)類(lèi)型進(jìn)行篩選:GetDateTime, GetDouble, GetGuid, GetInt32。
AOP.NET OracleDataReader對(duì)象
#T#許多數(shù)據(jù)庫(kù)操作要求我們僅僅只是需要讀取一組數(shù)據(jù)。這時(shí)候就用到了data reader對(duì)象。通過(guò)data reader對(duì)象,我們可以獲得從command對(duì)象的SELECT語(yǔ)句得到的結(jié)果??紤]到性能方面的因素,data reader返回的數(shù)據(jù)流被設(shè)計(jì)為只讀的、單向的,這將意味著你只能按照一定的順序從數(shù)據(jù)流中取出數(shù)據(jù)。雖然你在這里也獲得了性能上的提升,但是缺點(diǎn)也是明顯的,不能夠操作取回?cái)?shù)據(jù),如果需要操作編輯數(shù)據(jù),解決的辦法是使用DataSet。
AOP.NET OracleDataAdapter對(duì)象
某些時(shí)候我們只需要讀數(shù)據(jù),并且你不需要修改它們把更改寫(xiě)回?cái)?shù)據(jù)源。但是還有這樣一些情況為了減少數(shù)據(jù)庫(kù)調(diào)用的次數(shù),我們把數(shù)據(jù)緩存在內(nèi)存中。Data adapter通過(guò)斷開(kāi)模型來(lái)輕松的實(shí)現(xiàn)了后面這種情況的處理。當(dāng)批量完成的對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)操作的并將改變寫(xiě)回?cái)?shù)據(jù)庫(kù)的時(shí)候,data adapter 會(huì)填充(fill)DataSet對(duì)象。data adaapter里包含了connection對(duì)象,當(dāng)對(duì)數(shù)據(jù)源進(jìn)行讀取或者寫(xiě)入的時(shí)候,data adapter會(huì)自動(dòng)的打開(kāi)或者關(guān)閉連接。此外,data adapter還包含對(duì)數(shù)據(jù)的SELECT,INSERT,UPDATE和DELETE操作的command對(duì)象引用。如果我們?yōu)镈ataSet中的每一個(gè)table都指定data adapter,它將會(huì)幫你處理好所有與連接處理數(shù)據(jù)庫(kù)的操作,我們所需要做的僅僅就是告訴data adapter什么時(shí)候讀取或者寫(xiě)入到數(shù)據(jù)庫(kù)。
二用C# 寫(xiě)一個(gè)連接數(shù)據(jù)庫(kù)程序的步驟
在程序中要使用 System.Data.OracleClient 命名空間中類(lèi)的子集來(lái)對(duì)Oracle數(shù)據(jù)庫(kù)操作的步驟:
1、將 System.Data.OracleClient(用于Oracle 的 Microsoft .NET 框架數(shù)據(jù)提供程序)的引用添加到項(xiàng)目中。
2、使用 using 指令導(dǎo)入 OracleClient 類(lèi)中的類(lèi)型。
- using System.Data.OracleClient;
3、創(chuàng)建一個(gè) OracleConnection 對(duì)象。
- OracleConnection conn = new OracleConnection("Data Source=oracledb;User Id=UserID;PasswordPassword=Password;");
4、創(chuàng)建一個(gè) OracleCommand 對(duì)象。將其 Connection 屬性設(shè)置為上一步中創(chuàng)建的連接。將其 CommandText 設(shè)置為想對(duì)數(shù)據(jù)庫(kù)表進(jìn)行的操作,即SQL語(yǔ)句。
- OracleCommand cmd = new OracleCommand();
- cmd.Connection = conn;
- cmd.CommandText = "select * from table";
5、創(chuàng)建OracleParameter 對(duì)象,并將其添加到 OracleCommand 對(duì)象的參數(shù)集合中。(如果CommandText中有參數(shù),需要?jiǎng)?chuàng)建此對(duì)象)
- cmd.Parameters.Add("reccount",OracleType.Number);
6、如果您要瀏覽操作的結(jié)果集,請(qǐng)創(chuàng)建 DataSet、DataTable 或 DataReader。。
7、使用 OracleCommand 對(duì)象的一個(gè) Execute 方法執(zhí)行CommandText中的SQL語(yǔ)句,如下所示:
- conn.Open();
- cmd.ExecuteNonQuery();
- conn.Close();