Sesuai janji saya, ini pembahasan Part II, jika anda belum membaca Part I silahkan baca terlebih dahulu. Nah saya akan menjelaskan lagi beberapa perbedaan ADODB VB6 dan VBNET, coba simak beberapa point berikut ini:
1.ADODB di VB6Pada dasarnya ada 2 class yang sering (umum) digunakan, yaitu : Connection dan Recordset. Contoh :
Dim con As New ADODB.Connection
Dim rec As New ADODB.Recordset
2.SQLClient , OLEDD, ODBC di VBNET
Pada dasarnya ketika provider data tersebut sama saja, yang beda adalah dari connection string nya saja seperti saya telah jelaskan di Part I. Class yang sering (umum) digunakan biasanya ada 5 yaitu : Command, Connection, DataAdapter, DataReader, Transaction. Contoh :
Dim cmd As New [SqlClient/OleDb/Odbc].[SqlClient/OleDb/Odbc]CommandDim con As New [SqlClient/OleDb/Odbc].[SqlClient/OleDb/Odbc]Connection
Dim adp As New [SqlClient/OleDb/Odbc].[SqlClient/OleDb/Odbc]DataAdapter
Dim dread As New [SqlClient/OleDb/Odbc].[SqlClient/OleDb/Odbc]DataReader
Dim trans As New [SqlClient/OleDb/Odbc].[SqlClient/OleDb/Odbc]Transaction
Maksudnya [SqlClient/OleDb/Odbc] adalah anda dapat gunakan salah satu, bisa SqlClient atau OleDb
atau Odbc. Ok, setelah kita tahu perbedaan dasarnya, mari kita pelajari perbedaan pola/cara penulisan sintak nya, contoh beberapa sintak yang sering (umum) dilakukan adalah :
atau Odbc. Ok, setelah kita tahu perbedaan dasarnya, mari kita pelajari perbedaan pola/cara penulisan sintak nya, contoh beberapa sintak yang sering (umum) dilakukan adalah :
1.Connection
Untuk connection sudah saya contohkan di Part I
2.Execute (Insert, Update, Delete, Create, Drop, Alter, dan lain lain)
Jika di VB6 anda biasa menulis sintak seperti ini :
con.Execute "INSERT INTO TBL1 VALUES ('01','pandjie')"
con.Execute "DROP TABLE TBL1"
Jika di VBNET anda bisa menulisnya seperti ini :
Dim cmd As New SqlClient.SqlCommand
With cmd
.CommandText = "INSERT INTO TBL1 VALUES ('01','pandjie')"
.Connection = Con
.ExecuteNonQuery()
.Dispose
End With
'atau
Dim cmd As New SqlClient.SqlCommand("INSERT INTO TBL1 VALUES ('01','pandjie')", Con)
cmd.ExecuteNonQuery()
cmd.Dispose
'atau
Dim cmd As New SqlClient.SqlCommand With {.CommandText = "INSERT INTO TBL1 VALUES ('01','pandjie')", .Connection = con}
cmd.ExecuteNonQuery()
cmd.Dispose
'atau
Using cmd As New SqlClient.SqlCommand("INSERT INTO TBL1 VALUES ('01','pandjie')", con)
cmd.ExecuteNonQuery()
End Using
Dan masih banyak lagi caranya/kombinasi penulisan sintaknya
3.Select Query/Data
Jika di VB6 anda biasa menulis sintak seperti ini :
Dim rec As New ADODB.Recordset
rec.Open "SELECT * FROM TBL1 WHERE NIK='99'", con, adOpenDynamic, adLockOptimistic
If rec.EOF = True Or rec.BOF = True Then
MsgBox "DATA TIDAK DITEMUKAN"
'jika data kosong
Else
MsgBox rec.Fields("NAME").Value
'jika data ditemukan
End If
rec.Close
'atau contoh looping
Set rec = con.Execute("SELECT * FROM TBL1")
Do While rec.EOF = False
'sintak anda
rec.MoveNext
Loop
rec.Close
Jika di VBNET, pada umumnya ada dua metode, satu menggunakan DataReader dan yang kedua menggunakan DataAdapter. DataReader itu seperti RecordSet VB6 sedangkan DataAdapter itu adalah alat untuk mengolah query dan hasilnya akan di-set (biasanya) ke object DataTable, jadi untuk select Field dan looping nya bukan ke DataAdapter tetapi ke DataTable. contoh :
3.1 DataReaderDim cmd As New SqlClient.SqlCommand("SELECT * FROM TBL1 WHERE NIK='99'", con)
Dim dread As SqlClient.SqlDataReader = cmd.ExecuteReader
If dread.HasRows = False Then 'jika di VB6 = EOF atau BOF
MsgBox("DATA TIDAK DITEMUKAN")
'jika data kosong
Else
dread.Read() 'read untuk membaca record (.movenext jika di VB6)
MsgBox(dread.Item("NAME").ToString)
'jika data ditemukan
End If
dread.Close() 'closeReader
cmd.Dispose() 'loseCommand
'atau
Using cmd As New SqlClient.SqlCommand("SELECT * FROM TBL1 WHERE NIK='99'", con)
Using dread As SqlClient.SqlDataReader = cmd.ExecuteReader
If dread.Read = False Then 'langsung .read sebagai validasi
MsgBox("DATA TIDAK DITEMUKAN")
'jika data kosong
Else 'tidak perlu .read lagi karena sudah diatas
MsgBox(dread.Item("NAME").ToString)
'jika data ditemukan
End If
End Using '=Close DataReader
End Using '=Close Command
'atau contoh looping
Using cmd As New SqlClient.SqlCommand("SELECT * FROM TBL1", con)
Using dread As SqlClient.SqlDataReader = cmd.ExecuteReader
Do While dread.Read
'sintak anda
Loop
End Using
End Using
3.2 Data Adapter
Dim cmd As New SqlClient.SqlCommand("SELECT * FROM TBL1 WHERE NIK='99'", con)
Dim adp As New SqlClient.SqlDataAdapter(cmd)
Dim tbl As New DataTable
adp.Fill(tbl)
If tbl.Rows.Count = 0 Then
MsgBox("DATA TIDAK DITEMUKAN")
'jika data kosong
Else
MsgBox(tbl.Rows(0).Item("NAME").ToString)
'jika data ditemukan
End If
'atau
Dim tbl As New DataTable
Using adp As New SqlClient.SqlDataAdapter("SELECT * FROM TBL1 WHERE NIK='99'", con)
adp.Fill(tbl)
If tbl.Rows.Count = 0 Then
MsgBox("DATA TIDAK DITEMUKAN")
'jika data kosong
Else
MsgBox(tbl.Rows(0).Item("NAME").ToString)
'jika data ditemukan
End If
End Using
'atau contoh looping
Dim adp As New SqlClient.SqlDataAdapter("SELECT * FROM TBL1 WHERE NIK='99'", con)
Dim tbl As New DataTable
adp.Fill(tbl)
For Each myRow As DataRow In tbl.Rows
'sintak anda
Next
'atau
Dim tbl As New DataTable
Using adp As New SqlClient.SqlDataAdapter("SELECT * FROM TBL1 WHERE NIK='99'", con)
adp.Fill(tbl)
For i As Integer = 0 To tbl.Rows.Count - 1
'sintak anda
Next
End Using
Jadi sebenarnya banyak sekali cara/kombinasi di VBNET, contoh saya diatas hanya sebagian cara saja, anda boleh menggunakan berbagai cara/kombinasi menulis sintak VBNET yang menurut anda paling mudah, singkat dan mudah diingat/difahami.
Tags:
cara menggunakan data reader vbnet , cara menggunakan data adapter vbnet, command builder vbnet, tips dan trik vbnet, belajar vbnet dari 0 nol, cara select data dari datareader vbnet,