asp.net串連oracle的問題及方法總結

來源:互聯網
上載者:User

.net連oracle資料庫的兩個方法介紹
1. 安裝oracle用戶端,串連oracle

    需要在用戶端%oracle_client_home%network/admin/配置tnsnames.ora,以服務名aa為例,用戶端和伺服器服務名及串連串需要保持一致。服務名的配置執行個體如:

 代碼如下 複製代碼

a =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = helen)(PORT = 1521))
    )
    (CONNECT_DATA =

      (SERVER = DEDICATED)
      (SERVICE_NAME = a)
    )
  )

程式碼:

 代碼如下 複製代碼

 String connOra = "Data Source=a;User ID=a;password=a;Unicode=True";

 OracleConnection conn = new OracleConnection(connOra);
 conn.Open();
  if (conn.State == ConnectionState.Open)
      Response.Write("DataOracle.aspx conn open success");
 else

Response.Write("DataOracle.aspx conn open failure");

 
2.不安裝oracle用戶端,串連oracle

 不需要配置tnsnames.ora,把主機、連接埠、資料庫ID(SID)寫入連接字串,其他串連同上。

新的連接字串為:

 代碼如下 複製代碼

Data Source= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = helen)(PORT = 1521))) (CONNECT_DATA =  (SID= a) ));User ID=a;password=a;Unicode=True

公司用的是oracle10g,vs2010,都是32位的

1) oracle10g在64位win7無法直接安裝,解決方案:在安裝啟動exe檔案右鍵開啟屬性菜單,然後選擇相容性--->勾選以相容性運行這個程式-->選擇winxp,儲存後可以安裝。

2)之前用winxp32位系統,連接字串是這樣子的

 代碼如下 複製代碼

<add name="SQLMembershipConnString2" connectionString="Data Source=ORCL;User Id=system;Password=123456;" providerName="Oracle.DataAccess.Client"/>

換到現在64位win7後一直不能運行,折騰了一天才知道竟然是連接字串的問題。提示的錯誤是說oracle用戶端版本不夠高,不管連接字串怎麼改都是一樣錯誤提示,百度後找到很多文章都是說許可權不足原因(不確定是否有這個原因),改了後還是一樣問題,這個問題折騰了我一天的時間!!,後來還下載了oracle的odp.net組件,32位的64位的各種折騰,都有錯誤提示,按錯誤提示在網上搜尋都不能解決。以為framework的類和odp.net有相容問題。後來他仔細看了odp.net的說明,本來打算是串連遠程伺服器,就試著用  

 代碼如下 複製代碼

 <add name="SQLMembershipConnString3" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.253.11)(PORT=1521)) (CONNECT_DATA=(SID=HZDB)));User Id=test;Password=123456;" providerName="Oracle.DataAccess.Client"/>

這樣的字串,因為之前大量變動的原因,所以也折騰了很久也沒連上,正當我打算要放棄回家重裝32位系統時,刷頁面發現錯誤提示是“未找到表或視圖”,我靠!然後就這樣發現了問題的根源:連接字串不對呀。然後換上System.Data.OracleClient也正常了。
經過測試發現另外一種寫法也是可以的: 

 代碼如下 複製代碼

<add name="SQLMembershipConnString" connectionString="Data Source=
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.253.128)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      );User Id=test;Password=123456;
" providerName="Oracle.DataAccess.Client"/>


關於

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.