ADO.Net連接Oracle
阿新 • • 發佈:2017-07-24
找到 res 打開 info 服務器 ice 描述符 adk dba
1、添加 Oracle.ManagedDataAccess.dll
2、連接Oracle的實例得添加到Oracle的監聽器中,不然會報“ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務”的錯,添加如下,本例使用的是Oracle10g,找到C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN下的lisener.org,打開後修改添加標紅的部分
# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oracle\product\10.2.0\db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = C:\oracle\product\10.2.0\db_1) (SID_NAME = ORCL) )) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.130)(PORT = 1521)) ) )
3、連接字符串:
string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.121.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));Persist Security Info=True;User ID=scott;Password=tiger;";
其中Oracle數據庫服務器IP:192.168.121.130
ServiceName:ORCL
用戶名:scott
密碼:tiger
4、查看Oracle的實例名,用sys作為dba登錄,執行語句 select name from v$database;
5,C#代碼
using System; using System.Collections.Generic; using System.Configuration; using Oracle.ManagedDataAccess.Client; using System.Linq; using System.Text; namespace ADOSample { class Program { static void Main(string[] args) { string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.121.130)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));Persist Security Info=True;User ID=scott;Password=tiger;"; using (OracleConnection conn = new OracleConnection(connStr)) { string sql = "select * from dept "; conn.Open(); using (OracleCommand cmd = new OracleCommand(sql, conn)) { using (OracleDataReader dataReader = cmd.ExecuteReader()) { while (dataReader.Read()) { string obj = (string)dataReader[1]; Console.WriteLine(obj); } } } } Console.ReadKey(); } } }
ADO.Net連接Oracle