Senin, 18 November 2013

Pengolahan Database pada VB.NET

aplikasi tak luput dari  database, sekarang kita akan mendiskusikan bagaimana mengkoneksikan database pada VB.NET
Banyak database engine yang support dengan VB.NET, Microsoft SQL Server, MySQL, Microsoft Access, Oracle, Postgre SQL dan lain-lain.
Namun untuk menghubungkan VB.NET dengan database diperlukan sebuah Connection String.

Apa itu Connection String ?
Connection String adalah sebuah tipe data string yang dijadikan sebagai penghubung antara database dan project/kode.


Untuk informasi Connection String lebih lanjut , anda bisa mengunjungi website yang mendalami ilmu tersebut
http://www.connectionstrings.com/ (Jadi untuk Connection String dibaca dulu)


Beberapa cara untuk mengkoneksikan database , yaitu dengan komponen (ADODC,DAO,dll) ataupun dengan kode. Yang kita diskusikan pada artikel ini adalah dengan menggunakan kode.
Jika pada Visual Basic anda menggunakan ADODC, bisa dipertimbangkan lagi bagaimana setiap form diisi dengan komponen tersebut. Bisa dibilang aplikasi jadi lebih berat kan?

Diskusi ini mungkin dapat mengubah cara pengkodean anda. Kenapa ?


Terbayang tidak begitu ribetnya masukin komponen setiap Form ?

Lalu bagaimana bentuk dari handcode/kode tersebut ?

Contoh :
Saya mengkoneksikan project VB.NET dengan database SQL Server Database File dengan sebuah module yang bernama ModDatabase, berikut source code nya :

Imports System.Data.SqlClient

Imports System.Data.SqlClient.SqlCommandBuilder

Module ModDatabase

    Public con As SqlClient.SqlConnection

    Public cmd As SqlClient.SqlCommand

    Public dtr As SqlClient.SqlDataReader

    Dim mydatatable As DataTable

    Dim adapter As SqlClient.SqlDataAdapter

    Private bindingSource1 As New BindingSource()



Public Function OpenDB() As Boolean

        con = New SqlClient.SqlConnection

        con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename="D:\data.mdf";Integrated Security=True;User Instance=True"

        Try

            con.Open()

            Return True

        Catch ex As Exception

            MsgBox("Terjadi Error : " & ex.Message)

            Return False

        End Try

    End Function 



Public Sub _ComboData(ByVal sql As String, ByVal obj As Object)

        OpenDB()

        cmd = New SqlClient.SqlCommand(sql, con)

        Try

            obj.Items.Clear()

            dtr = cmd.ExecuteReader

            While dtr.Read()

                obj.Items.Add(dtr.Item(0).ToString)

            End While

        Catch ex As Exception

            MsgBox("Terjadi Error : " & ex.Message)

        Finally

            con.Close()

            con = Nothing

        End Try

    End Sub



    Public Sub _TableData(ByVal sql As String, ByVal obj As Object)

        OpenDB()

        cmd = New SqlClient.SqlCommand(sql, con)

        Try

            'obj.DataSource = Nothing

            dtr = cmd.ExecuteReader

            obj = New DataTable

            obj.Load(dtr)

        Catch ex As Exception

            MsgBox("Terjadi Error : " & ex.Message)

        Finally

            dtr.Close()

            con.Close()

        End Try

    End Sub



    Public Function _DataToValue(ByVal sql As String) As String

        OpenDB()

        cmd = New SqlClient.SqlCommand

        Try

            Dim p As String

            p = ""

            cmd.Connection = con

            cmd.CommandType = CommandType.Text

            cmd.CommandText = sql

            dtr = cmd.ExecuteReader

            If dtr.HasRows Then

                dtr.Read()

                p = (dtr.Item(0))

            End If

            Return p.ToString

        Catch ex As Exception

            Return ex.Message

        Finally

            'dtr.Close()

            con.Close()

        End Try

    End Function


Public Sub _RunSQL(ByVal sql As String)

        OpenDB()

        cmd = New SqlClient.SqlCommand(sql, con)

        Try

            cmd.ExecuteNonQuery()

        Catch ex As Exception

            MsgBox(ex.Message)

        Finally

            con.Close()

        End Try

    End Sub



Function _isBOF(ByVal table As String, ByVal field As String, ByVal whereValue As String) As Boolean

        Dim p As Integer

        p = _DataToValue("Select count(" & field & ") from " & table & " Where " & field & "='" & whereValue & "'")

        If p < 1 Then

            Return True

        Else

            Return False

        End If

    End Function



End Module

Lihat yang saya bold pada kode di atas. Semua bisa anda gunakan pada semua form.

1. OpenDB() As Boolean
Fungsi ini berguna untuk membuka database, namun outputnya sebagai boolean (true/false), anda bisa menggunakan untuk cek koneksi database. Contoh kode :

if OpenDB=false then

   msgbox "Tidak tersambung ke database"

else

  msgbox "Tersambung" 

end if 

2. _ComboData(ByVal sql As String, ByVal obj As Object)
Fungsi ini berguna jika anda ingin mengisi sebuah combobox dengan isi field pada database. Contoh :

_ComboData("Select nama_barang from barang",Me.ComboBox1)
3. _TableData(ByVal sql As String, ByVal obj As Object)
Pernahkah anda membuat kode untuk menampilkan data pada DataGridView? Panjang bukan? Nah, fungsi ini berguna untuk menampilkan data pada DataGridView dengan cepat, hanya 1 baris kode saja. Contoh :

_TableData("Select * from barang",Me.DataGridView1)

4. _DataToValue(ByVal sql As String) As String
Jika anda hanya menginginkan output 1 data bertipe string saja, maka anda membutuhkan fungsi ini.
Contoh event klik saat combobox yang menampilkan nama barang pada TextBox1 menampilkan kode barangnya :

Me.TextBox1.Text = _DataToValue("Select kode_barang from Barang Where nama_barang='" & Me.ComboBox1.Text & "'")
Pengkodean (kutip_satu)(kutip_dua) & komponen & (kutip_dua)(kutip_satu) membedakan yang mana kode sql dan yang mana komponen VB.NET



5. _RunSQL(ByVal sql As String)
Mengalami Insert,Edit,Delete yang kodenya ribet? Cukup panggil fungsi ini , Contoh :


_RunSQL("Insert into barang (kode_barang,nama_barang) values ('" & Me.ComboBox1.Text & "','" & Me.TextBox1.Text & "')")


_RunSQL("Update barang Set nama_barang='" & Me.TextBox1.Text & "' Where kode_barang='" & Me.ComboBox1.Text & "'")


_RunSQL("Delete from barang Where kode_barang='" & Me.ComboBox1.Text & "'")

6. _isBOF(ByVal table As String, ByVal field As String, ByVal whereValue As String) As Boolean
Gunakan fungsi ini untuk mengecek data ada atau tidak , Contoh :

if _isBOF("barang","kode_barang","0001")=false Then
    msgbox("Barang tidak ada")
Else
    msgbox("Barang Ada")
End If

Postingan ini tidak bertujuan untuk meniru ataupun harus mengikuti kode saya. Namun saya mengharapkan jika anda semua dapat merangkum semua kebutuhan aktif menjadi satu ruang.
Berikut saya share module file nya, di dalam paket ada koneksi dengan SQL Server dan MySQL

sumber :  http://www.ilmuprogrammer.com/2013/08/pengolahan-database-pada-vbnet.html#.Uoo3zifDueY

Tidak ada komentar:

KHAZANAH COMPUTER


KIRIM KE DAERAH KAMI PAKET ...ONGKOS KIRIM DI TANGGUNG PEMBELI....KAMI KIRIM MELALUI JNE..SAMPAI KE TEMPAT ANDA..



Pengikut