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#