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