2014년 3월 25일 화요일

[닷넷ADO.NET]ODP.NET, ODAC설치 및 간단 DB접속예제[닷넷C#교육잘하는곳/C#,ASP.NET교육추천/C#,ASP.NET,ADO.NET학원추천/ADO.NET학원교육추천/C#,ASP.NET교육학원추천/실무닷넷교육]

[닷넷ADO.NET]ODP.NET, ODAC설치 및 간단 DB접속예제[닷넷C#교육잘하는곳/C#,ASP.NET교육추천/C#,ASP.NET,ADO.NET학원추천/ADO.NET학원교육추천/C#,ASP.NET교육학원추천/실무닷넷교육]

[닷넷ADO.NET]ODP.NET, ODAC설치 및 간단 DB접속예제
 
1. ODAC는 아래 URL에서 다운 받자.
 
 
주의 : 자신의 오라클 버전에 맞는것을 다운로드 해야 한다.
 
설치시 ORACLE_BASE(오라클 소프트웨어의 베이스폴더, 사용자 계정이 a이면 c:\app\a) 및 ORACLE_HOME(저의경우, c:\app\A\product\11.2.0\dbhome_1) 디렉토리를 지정해야 하니 알고 있자.

2. 간단한 C# 콘솔 응용 프로그램 작성
 
먼저 Visual studio 우측 reference에서 Oracle.DataAccess를 참조 추가하자.
 
그리고 오라클에서 원격의 DB를 접속하려면 오라클홈\network\admin(c:\app\A\product\11.2.0\dbhome_1\NETWORK\ADMIN)의 tnsnames.ora 파일에 접속하고자 하는 DB명칭(tns이름)이 있어야 한다. 그 이름을 접속문자열의 data source 에 넣어주면 된다.
 
--------- tnsnames.ora
 
onJ =
  (DEscRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.7)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = onj)
    )
  )
 
---------------------------
 
 
using System;
using System.Data;
using Oracle.DataAccess;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace ConsoleApplication7
{
    class Program
    {
       
         static void Main(string[] args)  
         {    
            //아래에서 data source의 onj는 tnsnames.ora 파일의 DB접속이름이다.

            string str = "data source=onj;user id=scott; password=tiger";
            OracleConnection Conn = new OracleConnection(str); 
            OracleCommand Comm;   
            Comm = new OracleCommand();
            Comm.Connection = Conn;
            try       
            {            
                Conn.Open();            
                Comm.CommandText = "SELECT ENAME FROM EMP";
                OracleDataReader reader = Comm.ExecuteReader();
                while (reader.Read())       
                {     
                    Console.WriteLine(reader.GetString(reader.GetOrdinal("ENAME")));    
                }        
            }        
            catch (Exception ex)        
            {            
                Console.WriteLine(ex.ToString());        
            }        
            finally       
            {            
                Conn.Close();        
            }    
         }
    }
}

[결과]
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
 




댓글 없음:

댓글 쓰기