C#에서 Oracle을 엑세스하기 위해서는 .NET에서 제공하는 System.Data.OracleClient.dll를 참조에 추가해야 한다.
우선, Oracle의 데이터를 사용하기 위해서는 Oracle의 데이터베이스에 연결을 해야한다.
OracleConnection 클래스
데이터베이스에 대한 열린 연결을 나타낸다. 이 클래스는 상속될 수 없다.
OracleConnection 개체는 범위에서 벗어나도 열려 있는 상태로 유지된다.
즉, 항상 Close 또는 Dispose를 호출하거나 Using문 내에서 OracleConnection 개체를 사용하여 닫아줘야 한다.
OracleCommand 클래스
데이터베이스에서 실행한 SQL문 또는 저장 프로시저를 나타낸다. 이 클래스는 상속될 수 없다.
항목 |
설명 |
ExecuteReader |
행을 반환하는 명령을 실행한다. |
ExecuteOracleNonQuery |
Connection에 대해 SQL문을 실행하고 영향 받는 행의 수를 반환한다. |
ExecuteNonQuery |
SQL INSERT, DELETE, UPDATE 및 SET 문과 같은 명령을 실행한다. |
ExrcuteScalar |
데이터베이스에서 집계 값과 같은 단일 값을 .NET Framework 데이터 형식으로 검색한다. |
ExecuteOracleScalar |
데이터베이스에서 집계 값과 같은 단일 값을 Oracle 고유 데이터 형식으로 검색한다. |
1) ExecuteReader를 이용한 데이터베이스의 데이터 읽기 예제
public void ReadData(string connectionString)
{
string queryString = "SELECT EEMPNO, DEPTNO FROM TABLE";
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand command = new OracleCommand(queryString, connection);
connection.Open();
OracleDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(reader.GetInt32(0) + ',' + reader.GetInt32(1));
}
}
finally {
reader.Close();
}
}
}
2) ExecuteNonQuery를 이용한 쿼리 명령문 실행 예제
public void InsertRow(string connectionString)
{
string queryString = "INSERT INTO DEPT(DEPTNO, DNAME,LOC) VALUES (50, 'THCHNOLOGY', 'DENVER')";
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand command = new OracleCommand(queryString);
command.Connection = connection;
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}