使用framework內建的System.Data.OracleClient,這個需要安裝Oracle Client並且設定tnsname.ora檔案才可以與Oracle DB連線,工具會報出已過時的警告,建議不要用這種方式,因為.net framework已不在支援這樣的寫法。
那就只好使用另一種方式了(Oracle官方出品),就是Oracle.DataAccess.Client或 Oracle.ManagedDataAccess.dll,這兩種( 也叫ODP.net )方式都不用安裝Oracle Client, Oracle.ManagedDataAccess.dll 性能最優,官方下載位置在這裡。
當然也可以用Nuget的方式去安裝。
PM> Install-Package Oracle.ManagedDataAccess -Version 19.6.0
解壓縮ODP.net後在參考本篇,加入到參考中,就可以連線Oracle DB了。
一個簡單的select範例如下:
string conn_str = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=主機位置)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=DB的SID)));User ID=DB帳號;Password=DB密碼;";
OracleConnection conn_oracle = new OracleConnection(conn_str);
conn_oracle.Open();
OracleCommand cmdOracle = new OracleCommand("SELECT TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') RIGHTNOW FROM DUAL", conn_oracle);
OracleDataReader readerOracle = cmdOracle.ExecuteReader();
if (readerOracle.Read())
{
this.EventLog.WriteEntry("現在時間:" + readerOracle["RIGHTNOW"].ToString());
}
readerOracle.Close();
if (conn_oracle != null)
{
conn_oracle.Close();
conn_oracle.Dispose();
}