用.NET新提供的managedprovider來訪問Oracle資料(轉)
用.NET新提供的managedprovider來訪問Oracle資料(轉)[@more@] 微軟公司把SQL Server提升為.NET應用程式的資料庫,但是,由於Oracle很高的市場佔有率,你無疑需要在.NET應用程式中使用Oracle資料。在ADO.NET中,Oracle資料是利用通用的OLE-DB provider來訪問的,但是這在效能上落後於SQL Server的管理提供者(managed provider)。微軟公司認識到了有必要專門為Oracle提供管理者(provider),因此它釋出了 讓我們看看如何利用它來訪問資料的。 得到你所需要的 在以前,人們常常用“驅動(driver)”這一詞來表示讓應用程式訪問資料庫的工具。現在,在.NET下,人們用“管理提供者(managed provider)”來取代“驅動”一詞。.NET Managed Provider For Oracle是對.NET的一個附加,它依賴於Oracle客戶軟體來與Oracle資料庫介面。所以,除了擁有.NET提供者之外,你還需要安裝Oracle客戶軟體。 你還需要在Visual Studio .NET中新增對System.Data.OracleClient.dll的引用,為此,你可以在Visual Studio .NET中滑鼠右擊References列表或者從選單欄中選擇Project | Add Reference。你也許還需要在你的應用程式中正確匯入System.Data.OracleClient名字空間。 訪問資料 .NET環境的一大優點就是資料庫訪問程式碼通常遵循相同的模式而與後端資料庫無關。首先,你建立一個連線,然後配置SQL語句或者指令。最後,執行SQL(語句或者命令)並處理結果。 顯而易見,用來訪問Oracle資料庫的程式碼與用來訪問SQL Server的程式碼不會有很大的區別。這兩者的物件名字不同,但是過程是相似的,你可以在清單A中的VB.NET程式碼中很清楚的看出這一點。 清單A如下: Listing A: Accessing Oracle data Dim oracleConnection As New OracleConnection() Dim oracleCommand As New OracleCommand() Dim oracleReader As OracleDataReader Dim sqlString As String sqlString = "data source=oracle.server;user id=test;password=test" oracleConnection.ConnectionString = oracleConnection.Open() oracleCommand.CommandText = "SELECT * FROM DBTEST.PEOPLE" oracleCommand.Connection = oracleConnection oracleReader = oracleCommand.ExecuteReader 清單A中的程式碼建立一個連線、建立一個命令物件(該物件用來返回PEOPLE表中所有的行),並用OracleDataReader(它與SqlDataReader和OleDbDataReader物件相似)來讀取資料。 如果你用其它.NET環境來處理SQL Server,你會立即注意到你所用到的類的名字與Oracle對應類的名字是相似的。例如,SQL Server連線類命名為SqlConnection,而Oracle連線類命名為OracleConnection。 提防錯誤 在所有的.NET開發中,你都應該密切監視例外的產生以確保在訪問資料時程式碼執行無誤。OracleClient名字空間包括了一個特定於Oracle的例外類,即OracleException,它可以用在標準的try…catch程式碼塊中。清單B給出的程式碼就利用上述方法來捕獲任何例外。清單B給出了一個如何在執行時處理例外的例子。 清單B如下: Listing B: Exception handling Dim oracleConnection As New OracleConnection() Dim oracleCommand As New OracleCommand() Dim oracleReader As OracleDataReader Dim sqlString As String sqlString = "data source=oracle.server;user id=test;password=test" Try oracleConnection.ConnectionString = sqlString oracleConnection.Open() oracleCommand.CommandText = "SELECT * FROM DBTEST.PEOPLE" oracleCommand.Connection = oracleConnection oracleReader = oracleCommand.ExecuteReader ' Work with oracle data oracleReader.Close() oracleCommand.Dispose() Catch ex As OracleException 'handle the exception Catch ex As Exception 'handle the exception Finally If Not (oracleConnection Is Nothing) Then oracleConnection.Close() End If End Try 儘管在本文中我用到了OracleDataReader類,但實際上Oracle資料提供者包括了所有標準ADO.NET類(如OracleDataSet和OracleDataAdapter)的各種版本。微軟公司推出的.NET Managed Provider For Oracle提供了自由訪問Oracle資料的必備工具,其效能遠優於對OLE-DB的訪問。ADO.NET類的設計對資料庫的訪問所用的方法相同、物件相似,與資料庫型別無關。因此,OLE-DB專案可以很容易轉換到Oracle下。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-957115/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫限制訪問IPOracle資料庫
- 如何限制ip訪問Oracle資料庫Oracle資料庫
- Oracle資料訪問元件ODAC的安裝方法Oracle元件
- SpringBoot資料訪問之Druid資料來源的使用Spring BootUI
- [開源] .Net ORM 訪問 Firebird 資料庫ORM資料庫
- Oracle透明閘道器訪問SQLServer資料庫OracleSQLServer資料庫
- Oracle透明閘道器訪問MySQL資料庫OracleMySql資料庫
- Oracle資料庫連結(DBLink)中如何訪問包含BLOB欄位的資料Oracle資料庫
- grpc提供http訪問方式RPCHTTP
- JDBC用ResultSet訪問大量資料時會遇到的問題JDBC
- [開源] .Net 使用 ORM 訪問 華為GaussDB資料庫ORM資料庫
- Oracle DBLink跨資料庫訪問SQL server資料同步 踩坑實錄Oracle資料庫SQLServer
- 新的Lakehouse,遲來的資料正規化轉變
- ORACLE資料加密(轉)Oracle加密
- Spring資料訪問Spring
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- 【磐維資料庫】Oracle(透明閘道器)訪問磐維資料庫(PanWeiDB)資料庫Oracle
- Oracle外網訪問Oracle
- Oracle 訪問路徑Oracle
- oracle和sqlserver互訪(轉)OracleSQLServer
- [ASP.NET]關於DOT NET的IIS配置LocalHost訪問和127.0.0.1訪問的區別ASP.NETlocalhost127.0.0.1
- 【轉】ORACLE資料型別Oracle資料型別
- JDBC資料庫訪問JDBC資料庫
- 資料訪問 - EntityFramework整合Framework
- 用OMF來簡化資料庫管理(轉)資料庫
- oracle net manager 資料傳輸安全Oracle
- weblogic多資料來源故障轉移問題Web
- Oracle如何診斷遠端訪問資料庫慢/超時等問題小結Oracle資料庫
- Oracle RAC Cache Fusion 系列十三:PCM資源訪問Oracle
- 新的Unix rootkit用來竊取ATM銀行資料
- 【SpringBoot實戰】資料訪問Spring Boot
- Android基礎與應用 資料儲存與訪問Android
- 運用Log和Trace檔案排除Oracle Net問題Oracle
- 微軟改變資料訪問策略 OLE DB再次轉向ODBCOS微軟
- ORACLE 資料庫管理員的職責(轉)Oracle資料庫
- ASP.NET Core6.0-wwwroot資料夾無法訪問解決方法ASP.NET
- 好用的資料夾快速訪問:Default Folder X啟用最新版
- Vue原始碼之資料的代理訪問Vue原始碼
- spring mvc 的jpa JpaRepository資料層訪問SpringMVC