Sharing Everything From My Experience And Knowlegde |
Perbedaan ADODB VB6 dan SQLClient, OLEDB, ODBC di VBNET (PART II) Posted: 26 Feb 2013 09:56 PM PST 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 : 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, |
You are subscribed to email updates from Djiesoft, All About Source Code To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
No comments:
Post a Comment