1.Oracle Data Access Components for Windows를 다운로드한다.

http://www.oracle.com/technetwork/indexes/downloads/index.html?ssSourceSiteId=ocomen

=>설치할 때, 필수항목으로 Instant Client가 설치되는데 이미 설치되어 있어도 다시 하도록 되어있었음..;;

2. using Oracle.DataAccess.Client;

string oradb = "Data Source=(DESCRIPTION="              
              + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.xxx)(PORT=1521)))"
                //+ "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl.xxxx.com)));"
                + "(CONNECT_DATA=(SERVER=DEDICATED)(SID=ORCL)));"
                + "User Id=user;Password=password;";//service_name은 전역데이터베이스이름
                       
using (OracleConnection conn = new OracleConnection(oradb))
{
    try
    {
        conn.Open();

        using (OracleCommand cmd = new OracleCommand())
        {
            cmd.Connection = conn;
            cmd.CommandText = "select * from " +  tablename;

            OracleDataReader dr = cmd.ExecuteReader();                                                             

            while(dr.Read())
            { 
                 MessageBox.Show(dr.GetString(1));

....

      }

      cmd.CommandText = "insert into " + tablename + " (column1, column2, column3)"
                                                       + " VALUES('" + val1 + "', '" + val3 + "', '" + val3 + "')";

      int Res = cmd.ExecuteNonQuery();
      if (Res == 1)
      {
          System.Diagnostics.Trace.WriteLine("insert 성공");
      }
      else
      {
          System.Diagnostics.Trace.WriteLine("insert 실패");
      }

        }

    }
    catch (OracleException ex) // catches only Oracle errors
    {
        switch (ex.Number)
        {
            case 1:
                MessageBox.Show("Error attempting to insert duplicate data.");
                break;

            case 12545:
                MessageBox.Show("The database is unavailable.");
                break;

            default:
                MessageBox.Show("Database error: " + ex.Message.ToString());
                break;
        }
    }

    catch (Exception ex) // catches any other error
    {
        MessageBox.Show(ex.Message.ToString());
    }
    finally
    {
         // Don't need conn.Close() because the using takes care of it.
    }
}

'프로그래밍 > C#' 카테고리의 다른 글

C#으로 MySql 접속  (0) 2012.08.28
C#으로 Active Directory 접근  (0) 2012.08.28
C#의 객체지향  (0) 2012.05.10
C#의 기본문법  (0) 2012.05.08
Posted by 초코송송이
l