前天,我們的項目要與Java項目做接口,通過兩方人員協商,最終決定直接進到庫里去相互查數據。
由於Java項目連接的是Oracle數據庫,所以接口就是我們的項目也要連接Oracle庫,之前從沒有寫過用Asp.net連接Oracle,
所以從網上找了一個連接串,上面寫着無需安裝Oracle客戶端,可直接進行遠程訪問,原因是有TNS轉碼。如:
<connectionStrings>
<!--Oracle數據庫鏈接 SERVICE_NAME數據庫名稱 HOST地址 (PORT=1521)-->
<add name="OrlConnectionString" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=IP地址)(PORT=1521))(CONNECT_DATA=(SID=數據庫實例名)));User ID=****;Password=****;Unicode=True" providerName="System.Data.OracleClient"/>
</connectionStrings>
之前把.Net自帶的System.Data.OracleClient動態庫添加引用,也using了,
但是測試連接時,還是會報 System.Data.OracleClient 需要Oracle客戶端軟件 version 8.1.7 或更高版本 以為是連接串寫的有問題,用控件直接連Oracle庫,
結果測試時,還是存在此問題。無奈之舉,只好接着百度、谷歌,一大堆。找到Oracl中的重要的幾個dll添加進去,結果還是老樣子。
前前后后折騰了3小時之久,后來干脆安裝Oracle 10G 的客戶端,測試——成功。
因為從網上查的可以不安裝客戶端就可以直接遠程連接,不知道是我哪兒沒有配置對,還是 Asp.net連接Oracle 數據庫必須要安裝客戶端,望知道的告知一聲,謝謝
連接成功后,又遇到分頁問題,由於分頁要求不能用控件直接分頁,所以只能自定義分頁效果,誰知,吭姐的事發生了。Oracle 數據庫中竟然沒有 top ...
在SQL中 select top 10 from 表 沒有問題,但是在Oracle中想要查出前幾條,你得這么寫 select a.* from 表 a where rownum <=10
下面,給出寫的分頁
select c.* from
(select b.* from
(select a.*,rownum rn from JournalArticle_qg a
WHERE ROWNUM <= 當前頁數*顯示固定條數 and ''+ 條件+'' order by approvedDate desc
) b where rn > (當前頁數-1)*顯示固定條數 and ''+ 條件+'' order by approvedDate asc
) c where ''+ 條件+'' order by approvedDate desc
如果沒有條件直接傳 "1=1" 就OK。
以上是本姐第一次連接Oracle最到的兩個問題,完畢。