Pada artikel sebelumnya kita telah membahas perbedaan funsional antara module dan class di bahasa pemrograman vb.net pada artikel perbedaan fungsional module dan class. Pada artikel kali ini kita akan belajar membuat sebuah module yang memiliki fungsi atau method untuk menangani query database sql server. Module ini akan sangat berguna ketika kita ingin membuat sebuah aplikasi berbasis data. Untuk lebih jelasnya kita langsung ke tutorialnya saja.
advertisement
Buat sebuah module dengan nama SqlHelper, kemudian copy dan paste code berikut ini
Imports System.Data.SqlClient
Module SqlHelper
Private sqlds As New DataSet
Dim strcon As String
Sub setConnection(stringConnection As String)
strcon = stringConnection
End Sub
Function getAdapter(stringQuery As String) As SqlDataAdapter
Dim sqlcon = New SqlConnection(strcon)
sqlcon.Open()
Dim sqlDataAdapter = New SqlDataAdapter()
Try
sqlDataAdapter = New SqlDataAdapter(stringQuery, sqlcon)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
sqlcon.Close()
Return sqlDataAdapter
End Function
Function getDataSet(Optional ByVal stringQuery As String = Nothing, Optional ByVal tableName As String = "Table") As DataSet
If stringQuery = Nothing Then
Return sqlds
End If
Dim sqlcon = New SqlConnection(strcon)
sqlcon.Open()
Try
Dim dataAdapter = New SqlDataAdapter(stringQuery, sqlcon)
If sqlds.Tables.Contains(tableName) Then
sqlds.Tables.Remove(tableName)
End If
dataAdapter.Fill(sqlds, tableName)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
sqlcon.Close()
Return sqlds
End Function
Function getDataTable(Optional ByVal stringQuery As String = Nothing, Optional ByVal tableName As String = "Table") As DataTable
If stringQuery = Nothing Then
Return sqlds.Tables(tableName)
End If
Dim sqlcon = New SqlConnection(strcon)
sqlcon.Open()
Try
Dim dataAdapter = New SqlDataAdapter(stringQuery, sqlcon)
If sqlds.Tables.Contains(tableName) Then
sqlds.Tables.Remove(tableName)
End If
dataAdapter.Fill(sqlds, tableName)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
sqlcon.Close()
Return sqlds.Tables(tableName)
End Function
Function getCommand(stringQuery As String) As ModSqlCommand
Dim msc = New ModSqlCommand
Try
Dim sqlcon = New SqlConnection(strcon)
sqlcon.Open()
Dim sqlCommand = New SqlCommand(stringQuery, sqlcon)
msc.sqlConnection = sqlcon
msc.sqlCommand = sqlCommand
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Return msc
End Function
Function getDataReader(ByVal stringQuery) As ModSqlRaeder
Dim msr = New ModSqlRaeder
Try
Dim sqlcon = New SqlConnection(strcon)
sqlcon.Open()
Dim com = New SqlCommand(stringQuery, sqlcon)
msr.sqlConnection = sqlcon
msr.sqlDataReader = com.ExecuteReader()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Return msr
End Function
Sub ExecuteQuery(ByVal stringQuery)
Dim sqlcon = New SqlConnection(strcon)
sqlcon.Open()
Dim com = New SqlCommand(stringQuery, sqlcon)
Try
com.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
sqlcon.Close()
End Sub
Class ModSqlCommand
Public sqlCommand As SqlCommand
Public sqlConnection As SqlConnection
End Class
Class ModSqlRaeder
Public sqlDataReader As SqlDataReader
Public sqlConnection As SqlConnection
End Class
End Module
Dari code diatas bisa kita lihat bahwa module SqlService yang kita buat memiliki beberapa method dan dua inner class. Oke kita bahas satu-satu.
- Method setConnection
Sebelum kita menggunakan method lainnya, kita perlu untuk menconfigurasi koneksi database, menggunakan method diatas. - Method getAdapter
Method tersebut berfungsi untuk menangani query select yang nantinya data dikembalikan dalam bentuk SqlDataAdapter. - Method getDataSet
Sama hal nya dengan method getAdapter, method getDataSet juga berfungsi untuk menangani query select naman pengembalian data dalam bentuk DataSet. - Method getDataTable
Sama hal nya dengan dua method sebelumnya yaitu untuk menangani query select namun pengembalian data sudah dalam bentuk DataTable. Method ini juga yang nanti akan sering kita gunakan. - Mehode getCommand
Mehode ini digunakan ketika kita ingin membuat advance command menggunakan SqlCommand, seperti meninsert gambar kedalam database munggunakan sqlCommand.Parameters.AddWithValue. Karena didalam method tersebut tidak terdapat perintah sqlcon.Close() untuk memutus koneksi, maka setelah menggunkan metode tersebut perlu di dengan cara (InisialiasiGetCommand).sqlConnection.Close() - Method getDataReader
Method ini digunakan untuk menangani query select jika data yang ditarik terlalu besar sehingga mengakibatkan server kehabisan waktu(time out) untuk menangani query tersebut. Dengan menggunakan method getDataReader kita tidak perlu khawatir terjadi timeout. Kita juga perlu memutus koneksi setelah semua data telah diambil seperti pada method getCommand. - Method ExecuteQuery
Method ini berfungsi untuk menangani query tanpa pengembalian(selain query select), seperti update, insert, delete, create table dan lainnya.
Untuk lebih memahami method-method diatas, kita akan coba menggunakan methode-methode tersebut sehingga kita tau penggunaannya.
advertisement
Berikut cara menggunakan methode-methode diatas.
Imports System.Data.SqlClient
Module ModuleMain
Sub Main()
setConnection("DATA SOURCE=USER\SQLEXPRESS;INITIAL CATALOG=MYAPP; USER ID=sa; PASSWORD=123") 'Mengkonfigurasi koneksi database yang digunakan'
'1. Penggunaan methode getAdapter'
Dim ds As New DataSet
Dim adapter As SqlDataAdapter = getAdapter("select * from users")
adapter.Fill(ds, "TableName")
Dim dtable As DataTable = ds.Tables("TableName")
For Each row As DataRow In dtable.Rows
Console.WriteLine(row.Item("nama").ToString)
Next
'2. Penggunaan methode getDataSet'
Dim dataset As DataSet = getDataSet("select * from users", "TableName")
Dim dt As DataTable = dataset.Tables("TableName")
For Each row As DataRow In dt.Rows
Console.WriteLine(row.Item("nama").ToString)
Next
'3. Penggunaan methode getDataTable'
Dim datatable As DataTable = getDataTable("select * from users", "TableName")
For Each row As DataRow In datatable.Rows
Console.WriteLine(row.Item("nama").ToString)
Next
'4. Penggunaan methode getCommand'
Dim Command As ModSqlCommand = getCommand("update users set nama=@nama where id = @id")
Command.sqlCommand.Parameters.AddWithValue("@nama", "Newbiestar.com")
Command.sqlCommand.Parameters.AddWithValue("@id", "100")
Command.sqlCommand.ExecuteNonQuery()
Command.sqlConnection.Close()
'5. Penggunaan methode getDataReader'
Dim Reader As ModSqlRaeder = getDataReader("select * from users")
While Reader.sqlDataReader.Read
Console.WriteLine(Reader.sqlDataReader.GetString("nama"))
End While
Reader.sqlConnection.Close()
'6. Penggunaan methode ExecuteQuery'
ExecuteQuery("insert into users (id,nama) values('1','Newbieestar.com')")
Console.ReadLine()
End Sub
End Module
advertisement
Sekian dulu tutorial cara membuat modul sql helper kali ini. Jangan lupa di share jika kalian merasa artikel ini bermanfaat, dan jangan lupa tinggalkan jejak dengan berkomentar dibawah ini. File SqlHelper.vb bisa kalian download di sini.
Silahkan berkomentar dengan baik dan bijak!