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.NET5. _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
No comments:
Post a Comment