C#串連Oracle資料庫的教訓

來源:互聯網
上載者:User

C#串連Oracle資料庫的字串如下:

Data Source=GDBZH;User Id=zhangf;Password=guangy;

需要特別指出的是Data Source這個值是什麼,從哪裡擷取到(後面兩個,能在這裡看到的,估計都知道意思了吧,後面兩個不解析了)。

Data Source:從字面上解釋就是資料來源,這個資料來源是從Oracle的tnsnames.ora檔案中去找的。而並非是在系統的“管理工具”下的“資料來源(ODBC)”中找。這個tnsnames.ora檔案是在Oracle的安裝目錄下的“network\admin\”下。如我這個例子的GDBZH是這樣的:

GDBZH =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GDBZH)
    )
  )

這裡說明一下:SERVICE_NAME = GDBZH 這個應該是Oracle是資料庫的名稱。在安裝時如果沒改的話,一般預設是ORCL。

下面轉載一下相關的資料:

 

 

連接字串和對象

Oracle 連接字串和 Oracle 名稱解析是不可分的。假定我們在 tnsnames.ora 檔案中定義了一個資料庫別名 OraDb,如下:

OraDb=  (DESCRIPTION=    (ADDRESS_LIST=      (ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521))    )    (CONNECT_DATA=      (SERVER=DEDICATED)      (SERVICE_NAME=ORCL)    )  )

OraDb 別名定義用戶端的資料庫地址串連資訊。要使用上面所述的在 tnsnames.ora 檔案中定義的 OraDb 別名,您需要使用以下文法:

Dim oradb As String = "Data Source=OraDb;User Id=scott;Password=tiger;" ' VB.NETstring oradb = "Data Source=OraDb;User Id=scott;Password=tiger;"; // C#

不過,您可以修改連接字串,這樣就不需用 tnsnames.ora 檔案。只需用在 tnsnames.ora 檔案中定義別名的語句替換別名即可。

' VB.NET Dim oradb As String = "Data Source=(DESCRIPTION=" _           + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=OTNSRVR)(PORT=1521)))" _           + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" _           + "User Id=scott;Password=tiger;"// C#string oradb = "Data Source=(DESCRIPTION="             + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ORASRVR)(PORT=1521)))"             + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));"             + "User Id=scott;Password=tiger;";

正如您在上面看到的那樣,使用者名稱和口令是以不加密的文本形式嵌入到連接字串中的。這是建立連接字串的最簡單的方法。然而,從安全的角度而言不加密文本的方法是不可取的。尤其是,您需要瞭解編譯的 .NET 應用程式代碼僅比不加密文本形式的原始碼檔案稍微安全一點。可以非常簡便地反編譯 .NET DLL 和 EXE 檔案,進而查看原始的不加密文本形式的內容。(加密實際上是正確的解決方案,但這個主題與我們這裡的討論相差太遠。)

 

接下來,您必須從串連類中完成一個連線物件的執行個體化。連接字串必須與連線物件關聯。

Dim conn As New OracleConnection(oradb) ' VB.NETOracleConnection conn = new OracleConnection(oradb); // C#

注意,通過將連接字串傳遞給連線物件的構造器(該構造器進行了重載),連接字串與連線物件建立關聯。建構函式的其他重載允許以下這些替代的文法:

Dim conn As New OracleConnection() ' VB.NETconn.ConnectionString = oradbOracleConnection conn = new OracleConnection(); // C#conn.ConnectionString = oradb;

在連接字串與連線物件建立關聯之後,使用 Open 方法來建立實際的串連。

conn.Open() ' VB.NETconn.Open(); // C#

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.