Skip to content
22 Maret 2009 / Jeffrey Hermanto Halimsetiawan

Oracle Database (Oracle XE) dan C# Connectivity


Download PDF Version : Oracle Database (Oracle XE) dan C# Connectivity

Langkah-langkah yang harus dilakukan sebelum mengkoneksikan Oracle Database dengan aplikasi desktop C# adalah :

  1. Menginstall Oracle XE kemudian menggunakan user yang otomatis di-generate “system” atau membuat user baru,
  2. Jika service database masih belum berjalan maka lakukan Start Database,
  3. Menginstall IDE yang mendukung C#, sebagai contoh kali ini menggunakan Visual C#,
  4. File – New – Project kemudian pilih Windows Forms Application beri nama Solution yang diinginkan,
  5. Pada Solution Explorer, klik kanan pada References kemudian Add References. Pilih Oracle.DataAccess.dll dan klik OK,
  6. Pada Solution Explorer, klik kanan pada nama project anda misal “Kepegawaian” kemudian
  7. Add – New Item pilih C# Class dan beri nama semisal Koneksi.cs,
  8. Bagian yang paling penting dari Koneksi.cs adalah
    private string OracleServer = "Data Source=(DESCRIPTION="
    + ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))"
    + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));"
    + "User Id=jeffrey;Password=jeffrey;";

    HOST merupakan alamat IP dari server database Oracle, jika menggunakanOracle XE maka database
    Oracle terdapat pada localhost.
    SERVICE NAME adalah XE jika menggunakan Oracle XE.
    User Id dan Password diisi sesuai dengan User ID dan Password pada database server.

    Koneksi.cs :

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Windows.Forms;
    using Oracle.DataAccess.Client;
    
    public class Koneksi
    {
        private OracleConnection conn;
    
        private string OracleServer = "Data Source=(DESCRIPTION="
             + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))"
             + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));"
             + "User Id=jeffrey;Password=jeffrey;";
    
        public bool Open()
        {
            try
            {
                conn = new OracleConnection(OracleServer);
                conn.Open();
                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return false;
        }
    
        public void Close()
        {
            conn.Close();
            conn.Dispose();
        }
    
        public DataSet ExecuteDataSet(string sql)
        {
            try
            {
                DataSet ds = new DataSet();
                OracleDataAdapter da = new OracleDataAdapter(sql, conn);
                da.Fill(ds, "result");
                return ds;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return null;
        }
    
        public OracleDataReader ExecuteReader(string sql)
        {
            try
            {
                OracleDataReader reader;
                OracleCommand cmd = new OracleCommand(sql, conn);
                reader = cmd.ExecuteReader();
                return reader;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return null;
        }
    
        public int ExecuteNonQuery(string sql)
        {
            try
            {
                int affected;
                OracleTransaction mytransaction = conn.BeginTransaction();
                OracleCommand cmd = conn.CreateCommand();
                cmd.CommandText = sql;
                affected = cmd.ExecuteNonQuery();
                mytransaction.Commit();
                return affected;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return -1;
        }
    }
    
    
  9. Mengakses database dengan memanfaatkan method-method pada class Koneksi.cs, semisal
    menggunakan Form1.cs
    Form1.cs :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Oracle.DataAccess.Client;
    
    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public Koneksi con;
    
            public Form1()
            {
                InitializeComponent();
                this.con = new koneksi();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.con.Open();
                OracleDataReader odr;
                odr = this.con.ExecuteReader(textBox2.Text);
                while (odr.Read()) {
                    Console.Write(odr["KARYAWAN_ID"]+"\t");
                    Console.Write(odr["KARYAWAN_NAMA"] + "\t");
                    Console.WriteLine(odr["KARYAWAN_TGLMASUK"] + "\t");
                }
                this.con.Close();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                this.con.Open();
                this.con.ExecuteNonQuery(textBox1.Text);
                this.con.Close();
            }
        }
    }
  10. Selain menggunakan method ExecuteReader(string sql) dan ExecuteNonQuery(sql), akses database
    dapat juga menggunakan method ExecuteDataSet(string sql) dengan return value DataSet yang ditampilkan langsung dengan menggunakan DataGridView.
  1. adi / Okt 26 2009 13:50

    thanks y mas udh mw bagi-bagi pengetahuannya… skarang ak lgi bingung ni..aku ga taw cara membuat database baru pada oracle,…klo di sql server atau mysql kan gampang tinggal create database nama_database…klo di oracle gmana ya???thanks….

    • Jeffrey Hermanto / Okt 29 2009 17:49

      o y sama2..

      klo berdasarkan pengalamanku bikin database d oracle, biasanya aq bikin user baru d databasenya..
      jd 1 user isinya 1 database tertentu gt..
      y semoga bermanfaat..😀

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: