티스토리 뷰
비주얼 스튜디오 버전 16.11.7
대상 프레임 워크 .NET Core 3.1
오라클 11g 기준으로 작성된 글 입니다.
1. Oracle.ManagedDataAccess.Core 설치하기
WPF에서 오라클 DB 데이터를 사용하기 위해서는 패키지 관리자 NuGet을 이용해
Oracle.ManagedDataAccess.Core 를 설치해야합니다.
먼저 비주얼 스튜디오를 열고 WPF 애플리케이션을 생성합니다.
프로젝트에서 오른쪽 마우스를 클릭하고 메뉴에서 NuGet 패키지 관리를 선택합니다.
[찾아보기]로 분류를 변경하고 검색창에 Oracle을 검색합니다.
여러개의 오라클 패키지중에서 Oracle.ManagedDataAccess.Core를 설치합니다.
이제 [설치됨]에서 패키지를 확인할 수 있습니다.
2. OracleConnection
설치한 패키지를 사용하기 위해 다음과 같이 적습니다.
using Oracle.ManagedDataAccess.Client;
이제부터는 패키지에 정의된 여러 타입들을 사용할 수 있게 됩니다.
여러 타입중에 연결에 사용되는 것은 OracleConnection 입니다.
데이터베이스의 정보들을 문자열 형태의 인수로 받아 선언됩니다.
OracleConnection conn;
public MainWindow()
{
InitializeComponent();
//string constr = '';
conn = new OracleConnection(constr);
}
이 객체를 이용해 데이터베이스에 연결(Open) 하거나 연결을 종료(Close)하는 것이 가능해 집니다.
(사용후에는 반드시 연결을 종료해야 합니다.)
using System;
...
using Oracle.ManagedDataAccess.Client;
namespace WpfApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
OracleConnection conn;
public MainWindow()
{
InitializeComponent();
//string constr = '';
conn = new OracleConnection(constr);
conn.Open();
conn.Close();
}
}
}
3. 연결하기
문자열 인수의 형태는 다양합니다.
그 중 서버연결정보를 직접 넣는 방법으로 진행해 보겠습니다.
(별칭만으로 인식이 안되더라구요)
필요한 정보는 아래 3가지 입니다.
1. Data Source (데이터베이스정보)
2. User Id (오라클 계정 아이디)
3. Password (오라클 계정 비밀번호)
제대로 된다면 별도의 추가적인 설정없이 바로 연결이 가능합니다.
...
using Oracle.ManagedDataAccess.Client;
namespace WpfApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
OracleConnection conn;
public MainWindow()
{
InitializeComponent();
string constr = "Data Source = 데이터 베이스 정보 ;" +
"User Id = 오라클 계정 아이디 ;" +
"Password = 오라클 계정 비밀번호 ;";
conn = new OracleConnection(constr);
conn.Open();
conn.Close();
}
}
}
계정 아이디와 비밀번호는 접속할 계정을 그대로 입력해주면 됩니다.
데이터 베이스 정보는 tnsnames.ora 파일에 적혀있습니다.
파일의 위치는 다음과 같습니다.
ORACLE_HOME/NETWORK/ADMIN/tnsnames.ora
Q : (이게몬대요..?)
A : 오라클은 TNS(Transparent Network Substrate)라는 것을 사용합니다.
깊게 이해할 필요는 없고 데이터 전송이 가능하도록 도와주는 오라클의 네트워크 기술이라고 보면 됩니다.
tnsnames.ora는 TNS 주소설정을 위해 사용되는 파일입니다.
따라서 데이터베이스 접속에 필요한 여러 정보들이 적혀있습니다.
대게 이런형태 인데요.
별칭(addressname) = 뒤부터 그대로 복사 붙여넣기하시면 됩니다.
<addressname> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>))
)
(CONNECT_DATA =
(SERVICE_NAME = <service_name>)
)
)
저는 테스트 계정을 만들어서 실행 해보겠습니다.
CREATE USER test IDENTIFIED BY test;
GRANT CONNECT,RESOURCE TO test;
COMMIT;
...
using Oracle.ManagedDataAccess.Client;
namespace WpfApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
OracleConnection conn;
public MainWindow()
{
InitializeComponent();
string constr = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)));" +
"User Id = test;" +
"Password = test;";
conn = new OracleConnection(constr);
conn.Open();
conn.Close();
}
}
}
정상적으로 WPF 윈도우가 켜진다면 연결 성공입니다.
[참고자료]
공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.
'C# | WPF' 카테고리의 다른 글
[WPF/C#/Oracle DB] 오라클 DB Blob 이미지 저장/불러오기 (0) | 2022.01.20 |
---|---|
[WPF] 입문하기 - WPF란 (0) | 2021.12.23 |
[WPF/C#, XAML] 버튼 배경색 바꾸기 (0) | 2021.12.23 |
[WPF/XAML] 둥근 테두리 버튼 만들기 (0) | 2021.12.23 |