C#,Delphi,Oracle,MSSQL 개발자블로그
C# - Oracle DB 연결하기.(ODP.NET이용) 본문
C#과 오라클을 연동하는 방법에는 여러가지가 있지만, 본 글에서는 ODAC를 이용하는 방법을 소개한다.
ODAC는 오라클 홈페이지에서 별도로 다운을 받아야 한다.
다운받게되면, 비주얼 스튜디오에서 Oracle.DataAccess.dll 을 참조할 수 있다.
참조를 걸었으면, dll을 사용하기 위해서, Oracle.DataAccess.Client를 using 걸어준다.
[select 할 DB]
위의 테이블에서, DNAME 컬럼에 있는 ACCOUNTING을 SELECT 하는 것을 테스트 한다.
[소스]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
namespace dbConTest
{
public partial class Form1 : Form
{
string connect_info = "DATA SOURCE = orcl; User Id = LIME; Password = 1234";
OracleConnection conn;
OracleCommand cmd;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
conn = new OracleConnection(connect_info);
cmd = new OracleCommand();
conn.Open();
cmd.Connection = conn;
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
string SQL = "SELECT dname FROM LIME.dept WHERE rownum < 2";
OracleDataAdapter ad = new OracleDataAdapter();
ad.SelectCommand = new OracleCommand(SQL, conn);
ad.Fill(ds,"test");
MessageBox.Show(ds.Tables["test"].Rows[0][0].ToString());
conn.Close();
}
}
}
내 컴퓨터 PC 내에 orcl이라는 DB를 설치하고, LIME 이라는 계정을 만들어, 비밀번호를 1234로 설정하고 접속하여 SELECT 하는 것을 테스트
해본 것이다.
[16번째 줄]
DB에 접속하기 위해서는, Data Source와, 접속한 유저ID(스키마), 패스워드 총 3가지가 필요하다.
위의 예는, 미리 tnsnames.ora 파일에 설정해 놓은 orcl 이라는 서비스 네임(DB이름)으로 들어간 것이다.
tnsnames.ora 파일은, 오라클 클라이언트 설치 드라이브-> app 또는 oracle 폴더 (10g는 oracle폴더이고, 11g는 app폴더임)
-> 컴퓨터 로그인계정명(또는 바로 product폴더가 있을 수도 있음.)
-> product폴더
-> 오라클 버젼 폴더
-> client_x 폴더 (x는 설치된 오라클클라이언트 갯수에 따라 1,2,3,,,순임.)
->Network 폴더
-> Admin 폴더안에 있다.
* 이 때, 주의할 점은 클라이언트를 최초 설치시 Instant Client로 설치하면 이 경로로 접근할 수 없다.
설치시, 관리자모드로 설치해야만 들어갈 수 있다.
오라클 클라이언트 설치 관련 : http://lena19760323.tistory.com/5
정상적으로 위의 경로로 들어가면 tnsnames.ora 라는 폴더가 있는데, 열어 보면 아래와 비슷한 포맷의 화면이 나온다.
설명하자면,
[LIME]
SID라고 한다. 위 소스에서
[PROTOCOL]
사용 프로토콜이다. 오라클은 TCP를 쓰면 된다.
[HOST]
접속할 DB의 IP가 들어가는 자리이다. locallhost는 내 컴퓨터를 말한다.
[PORT]
TCP를 사용하는 오라클 포트는 1521이다.
[SERVER = DEDICATED]
웹 서버, 소프트웨어등을 임대하여 전용으로 사용 하는 서버
[SERVOCE_NAME]
여러 개의 인스턴스를 모아 하나의 서버를 구성한 것.
'Programming > C#' 카테고리의 다른 글
C#에서 Oracle의 프로시저 사용. (0) | 2017.06.15 |
---|---|
C# 폴더, 파일유무 확인 (0) | 2017.06.14 |
C# DateTime을 이용해서 년도와 달을 알때, 마지막 날짜 구하기 (0) | 2017.06.08 |
C# 우측하단에 알림창 띄우기. (1) | 2017.04.14 |
C# URL 연결시 ,문자열 encoding 하기. (0) | 2017.04.14 |