19 Juni 2013

Koneksi PostgreSQL dengan VB.Net

Pada kesempatan kali ini aku akan coba membahas cara koneksi dari VB.net 2008 ke server database PostgreSQL. Sebelum memulai membahas, ada baiknya menjelaskan ketentuan awal.
  • Server database PostgreSQLsudah terinstal
  • Koneksi pada contoh program yang disediakan menggunakan server localhost ; port:5432
OK, mari kita lanjut ke pokok pembahasan.
Seperti halnya koneksi vb.net ke server database pada umumnya, koneksi ke server database PostgreSQL juga memerlukan sebuah konektor .net provider yang berguna untuk membantu dalam menjembatani antara program vb.net yang akan kita buat dengan server database. Setelah bertanya dengan om google, akhirnya jatuhlah pilihan terhadap Npsql (http://npgsql.projects.postgresql.org/). Konektor ini dikembangkan dengan menggunakan bahasa C# dan kompatibel penuh dengan database posgre 7.x dan versi diatasnya. Apabila hanya ingin tinggal pakai saja, maka Npsql dapat di unduh melalui link ini.
Setelah mendapatkan file .net provider Npsql, ada baiknya file tersebut di letakan di folder yang sama di mana file .exe dari program yang akan dibuat berada. Sebagai contoh, pada proses pembuatan aplikasi berbasis .net masih berstatus debug, oleh karena itu file .net provider Npsql dapat diletakan pada folder Debug.


Apabila dikemudian hari, status dari program yang dibuat ingin beralih ke Release, maka jangan lupa untuk menyertakan ke-4 file tersebut.

Sekarang kita mulai pengaturan di bagian VB.net 2008, setelah membuat project baru, maka tambahan referensi baru pada aplikasi tersebut.


Pilih bagian Browse dan arahkan ke folder dimana file-file dari Npsql.dll berada.


Kemudian, pada form yang akan digunakan, jangan lupa juga tambahankan perintah Imports Npsql.


Imports Npsql


Perihal urusan Connection String, aku menggunakan perintah sebagai berikut ini :


str1 = String.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};", "localhost", "5432", "postgres", "postgres", "coba")

Connection String tersebut merupakan connection string yang digunakan jika pada sisi server sudah terdapat database. Jika pada sisi server belum ada database yang dituju, maka dapat menggunakan connection string berikut ini :


str2 = String.Format("Server={0};Port={1};User Id={2};Password={3};", "localhost", "5432", "postgres", "postgres")

Sedangkan untuk urusan koneksi ke database, dapat menggunakan sub rutin berikut ini :


'digunakan setelah database dibuat
Public Function KonekFB1() As Boolean
    If conn.State = ConnectionState.Open Then
        conn.Close()
    End If
    conn.ConnectionString = str1
    Try
        conn.Open()
        cmd.Connection = conn
        Return True
    Catch ex As Exception
        conn.Close()
        Return False
    End Try
End Function)

Setelah terkoneksi, maka untuk melakukan query dan menampilkan data ke dalam datagrid dapat menggunakan sub rutin berikut ini :


Public Function ViewTabel(ByVal namadatatable As String, ByVal namaDG As DataGridView, ByVal query As String) As Boolean
    If conn.State = ConnectionState.Open Then
        conn.Close()
    End If
    conn.ConnectionString = str1
    Try
        conn.Open()
        cmd.Connection = conn
        cmd.CommandText = query
        dspg = New DataSet("namadataset")
        dapg = New NpgsqlDataAdapter(cmd)
        dapg.Fill(dspg, namadatatable)
        namaDG.DataSource = dspg.Tables(namadatatable)
        namaDG.AutoGenerateColumns = True
        conn.Close()
    Catch ex As Exception
        conn.Close()
    End Try
End Function


Kemudian lakukan pemanggilan untuk sub-rutin KonekFB1() dan ViewTabel()


'melakukan koneksi dengan postgre server
KonekFB1()

'melakukan query table dan menampilkan ke dalam datagrid
ViewTabel("coba1", dg, "select * from " & Chr(34) & "TABLE1" & Chr(34))


Rutin untuk pembuatan database secara runtime adalah sebagai berikut ini :


Private Sub cmd_CreateDB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_CreateDB.Click
    If CmdSQL2("CREATE DATABASE " & Chr(34) & "coba" & Chr(34) & " With Owner = postgres ENCODING = 'UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1") = False Then MsgBox("Periksa kembali nama database, pastikan nama database belum terdaftar di server")
End Sub

Rutin untuk pembuatan table secara runtime adalah sebagai berikut ini :


Private Sub cmd_CreateTable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_CreateTable.Click
    If CmdSQL1(" CREATE TABLE " & Chr(34) & "TABLE1" & Chr(34) & "(" & _
                 Chr(34) & "Column1" & Chr(34) & " integer NOT NULL," & _
                 Chr(34) & "Column2" & Chr(34) & " character(20)," & _
                 "CONSTRAINT " & Chr(34) & "LOGGER_pkey" & Chr(34) & " PRIMARY KEY (" & Chr(34) & "Column1" & Chr(34) & " ));") = False Then MsgBox("Periksa kembali nama tabel, pastikan nama tabel belum terdaftar di database")
End Sub

Rutin untuk pengisian data dummy adalah sebagai berikut ini :

Private Sub cmd_CreateDataDummy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_CreateDataDummy.Click
    Dim baris1 As Integer = 0
    Dim baris2 As String = Nothing
    For i = 0 To 99
        baris1 += 1
        baris2 = "Baris" & baris1
        If CmdSQL1(" INSERT INTO " & Chr(34) & "TABLE1" & Chr(34) & " VALUES (" & baris1 & ",'" & baris2 & "')") = False Then
            MsgBox("Periksa kembali nama tabel, pastikan nama tabel belum terdaftar di database")
            Exit For
        End If
    Next
    ViewTabel("coba1", dg, "select * from " & Chr(34) & "TABLE1" & Chr(34))
End Sub


Berikut ini tampilan dari program yang telah tersebut.


Adapun data tersebut dapat dilihat pada program pgadmin (GUI untuk database PostgreSQL)


0 komentar:

Posting Komentar

Silahkan TInggalkan Komentar Anda di Blog Saya..
No SPAM and No PORN...
Terimakasih Telah meninggalkan Jejak Anda

Related Posts Plugin for WordPress, Blogger...
Award Pertama
Photobucket
Langganan Artikel Si Boersan :

Enter your email address:

Delivered by FeedBurner

Monggo Di Copy Linknya :
Text Link

Banner Link

Komunitas Blogger Indonesia Komunitas Blogwalking