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);
        }
    }
}

+ Recent posts