1. 程式人生 > >ADO.Net連接Oracle

ADO.Net連接Oracle

找到 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