報表控件ActiveReports快速入門指南 - 鏈接Oracle數據庫(v13及更低版本)

ActiveReports 是一款專注於 .NET 和 .NET Core 平臺的報表控件。通過拖拽式報表設計器,可以快速地設計 Excel表格、Word文檔、圖表、數據過濾、數據鑽取、精準套打等類型報表,全面滿足 WinForm、ASP.NET、ASP.NET MVC、WPF 平臺中各種報表的開發需要。同時,通過豐富的 API 可以靈活的實現報表創建、加載和運行時的個性化自定義需求。

ActiveReports正式版下載

ActiveReports 很早開始就已經支持Oracle數據庫了,那這篇文章,我們就來學習如何搭建ActiveReports支持的Oracle環境及設置Oracle數據源。

ActiveReports 報表能否正常連接Oracel數據源取決於 Oracle的數據庫驅動安裝是否成功,因此安裝Oracle數據驅動的版本和型號非常重要。

一、安裝Oracle 數據庫驅動

注意:ActiveReports僅支持32位的Oracel數據庫驅動,因此在安裝Oracle數據庫驅動時一定要安裝32位驅動。

下載地址:win32_11gR2_client.zip

安裝32位驅動時,選擇”管理員“,這樣才能保證安裝成功,否則安裝不完全,也能導致ActiveReports無法連接數據庫。

報表控件ActiveReports快速入門指南:鏈接Oracle數據庫(v13及更低版本)

選擇”下一步“,最後安裝完成後,點擊確定。

驅動安裝成功後,我們的連接工作就已經完成一半了。

二、使用ActiveReports報表設計器連接數據庫

注意: 字符串的編寫

  • 添加數據源,選擇Oracle Client Provider
  • 輸入服務器名稱, 格式:”IP/Oracle服務名“,如10.32.0.200/ORCL
  • 輸入用戶名和密碼
  • 點擊連接字符串AR會根據您的輸入,自動生成字符串,點擊”√“驗證是否連接成功。
報表控件ActiveReports快速入門指南:鏈接Oracle數據庫(v13及更低版本)
報表控件ActiveReports快速入門指南:鏈接Oracle數據庫(v13及更低版本)

如果按照上述步驟,無法正確連接,請嘗試以下操作:

1. 修改連接字符串的爲,因爲有可能服務器端給出的是實例名 SID 而不是服務名,所以需要修改連接字符串如下:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1521)) (CONNECT_DATA=(SID=myDB)));User Id=test;Password=123456;

OLE EB方式:
Provider=OraOLEDB.Oracle.1;Password=888;Persist Security Info=True;User ID=label;Data Source=pyoracle

2. 如果在使用AR控件的C#程序項目中,連接Oracle數據庫有問題,顯示如下錯誤信息:
未能加載文件或程序集“Oracle.DataAccess”或它的某一個依賴項。試圖加載格式不正確的程序。
那麼可以嘗試以下方法:

(1)不要引用Oracle提供的ODP.NET組件(Oracle.DataAccess.dll),改爲引用微軟的System.Data.OracleClient:
微軟的:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.OracleClient.dll

(2)代碼中用到OracleConnection類的地方,要修改using語句:
加上:using System.Data.OracleClient;
同時註釋掉Oracle Provider的相關using語句:
//using Oracle.DataAccess.Types;
//using Oracle.DataAccess.Client;

(3)安裝Oracle客戶端。
System.Data.OracleClient本身只是一個接口,並沒有連接Oracle數據庫的能力。
如果不安裝Oracle客戶端,程序可能報出如下錯誤信息:
System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.

3. 如果訪問Unix 的Oracle數據庫出現TNS 12514錯誤,可能原因如下:

  • 服務器上的服務名並非ServiceName而是SID。
    解決方法: 可以在Net Manager中設置服務命名時,選中【使用Oracle8發行版8.0兼容標識】,然後在SID框中輸入服務名。
報表控件ActiveReports快速入門指南:鏈接Oracle數據庫(v13及更低版本)

這個服務命名的配置信息保存在X:\app\xxx\product\11.2.0\client_1\network\admin目錄下的tnsnames.ora文件中,可以看到常見的(Service_Name=xxx)會變成(SID=xxx)。
需要注意的是,只有Net Manager有那個SID的選項,用Net Configuration Assistant配置本地網絡服務名時,沒有機會指定SID,似乎只接受ServiceName,因此,如果網管提供的服務名只是SID而不是ServiceName的話,測試連接時就會一直提示12514錯誤。

4. 使用AR開發的ASP.NET應用程序,可能在部署之後查看報表報錯
No Data Provider found for the data provider type 'Oracle'.
可能的原因是AR的版本低於AR 10.1.*
只需下載AR 10.1.*或更新版本,安裝到IIS所在電腦(不必先卸載舊版本),
然後將C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 10目錄下的
GrapeCity.ActiveReports.*.dll文件複製到ASP.NET應用程序部署目錄下的bin子目錄下。

本文內容源自葡萄城

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章