Pages

Search

 

22 March 2009

[Database] Oracle Database (Oracle XE) and 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.

No comments: