일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Json.NET
- Excel Cell Format
- MDB Select
- MDB Connect
- delegate
- DrawEllipse
- 디자인 패턴
- C# MDB Handle
- NUnit
- GDI+
- c#
- JSON
- 경기도 버스
- C# MDB
- 객체지향
- WPF
- DrawRectangle
- 버스 API
- Cell Border Style
- C# 파일 암/복호화
- solid
- 공공 데이터 포털
- sqlite3
- TDD
- MVC
- 경기도 버스정보시스템
- eventhandler
- 시
- eventargs
- Winform
Archives
- Today
- Total
White Whale Studio
C# Oracle OleDB 연동 본문
반응형
생각보다 구글링 했을떄 OleDB 연동 자료가 없어서 생각보다 시간이 좀 오래걸렸다.
외국문헌 보면서 하다보니 상황에 안맞는 코드들도 많고.. 이리저리 해보다가 정상동작하는게 있어서
다음과 같이 정리한다.
1. Connection
2. DataSet Results를 받는 쿼리 실행
3. DataSet Results를 받지않는 쿼리 실행
4. Procedure 실행
위와 같이 기록한다.
1. Connection
정말 별거 아닌데 ConnectionString을 제대로 못잡아서 안되는 경우가 종종있었다.
(그래서 짜증...)
1
|
ConnectionString = string.Format("Provider=OraOLEDB.Oracle;Data Source={0};User ID={1};Password={2};PLSQLRSet=true;", Catalog, UserId, UserPwd);
|
cs |
위와같이 설정하고 상황에 맞춰서 Catalog, ID, PW를 넣고 연결문자를 준비한다.
쿼리 실행 때 사용하므로 다음으로 진행한다.
2. DataSet Results 를 받는 쿼리 실행
Select의 결과값을 DataSet으로 받는 쿼리 메서드다.
조건이 되는 파라미터를 OleDBParameter로 넘겨서 추가해서 실행한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
using (OleDbCommand cmd = new OleDbCommand(cmdText, conn))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.Clear();
if (null != collection)
{
foreach (OleDbParameter param in collection)
{
if (null != param)
cmd.Parameters.Add(param);
}
}
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
{
adapter.Fill(ds);
}
}
}
|
cs |
3. DataSet Results를 받지않는 쿼리 실행
DataSet으로 결과를 받지는 않고 쿼리 실행결과의 단일결과값으로만 받는 소스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
using (OleDbCommand cmd = new OleDbCommand(procedureName, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
if (null != collection)
{
foreach (OleDbParameter param in collection)
{
if (null != param)
cmd.Parameters.Add(param);
}
}
cmd.ExecuteNonQuery();
if (returnParam.Length > 0) results = cmd.Parameters[returnParam].Value.ToString();
}
}
|
cs |
4. Procedure 실행
프로시저도 거의 유사하지만 CommandType을 다르게 해서 실행한다는것이 차이점
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
using (OleDbCommand cmd = new OleDbCommand(procedureName, conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
if (null != collection)
{
foreach (OleDbParameter param in collection)
{
if (null != param)
cmd.Parameters.Add(param);
}
}
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
{
adapter.Fill(ds);
}
}
}
|
cs |
반응형
'IT Engineering > C#.net' 카테고리의 다른 글
Excel Cell Border 및 배경색, 폰트 색상, 데이터 형식 지정 (0) | 2023.02.08 |
---|---|
C# 바로가기 아이콘 만들기 Shortcut (0) | 2021.01.28 |
C# & Oracle US7ASCII CharacterSet ISSUE (0) | 2020.08.14 |
DbDataReader 다루기 (0) | 2020.03.30 |
C# Firefox Runtime Package - XulRunner - Gecko (0) | 2017.02.15 |
Comments