stmikbg-dot-com

Informasi Seputar IT

Archive for the ‘.Net Programing’


Binding Manual Combobox pada VB.Net

Kemarin saat developt software untuk versi .NET saya sempat kebingungan, mungkin karena masih tersihir dengan metode binding pada VB.6 Jadi saya hampir saja menggunakan gaya pemerograman VB.6 untuk memasukkan data item kedalam combo box. Ditengah perjalanan codeing saya langsung buntu, bagaimana tidak untuk pindah antar baris jika di VB.6 mudah sekali digunakan cukup menggunakan properties .MoveNext pada object recordset yang dimaksud kita langsung bisa membinding semua data kedalam combo. Untuk jelasnya bisa dilihat pada Code Dibawah ini

'Visual Basic 6.0 Style
'Using Recordset Object
StrCariPasien = "Select [Register Pasien],[Nomor Rekam Medik],[Nama Pasien],[Alamat],[Jenis Pengenal]," & _
                "[Nomor Pengenal],[Handphone],[Phone] From Pasien Where [Nama Pasien] Like '" & Trim(TxtSearch.Text) & "%'"
Set RsCariPasien = Nothing
Set RsCariPasien = New ADODB.Recordset
RsCariPasien.Open StrCariPasien, Conn, adOpenDynamic, adLockOptimistic
CboSearch.Clear
If RsCariPasien.RecordCount <> 0 Then

 'Looping sebanyak data yang ada
 With RsCariPasien
  .MoveFirst
  While Not .EOF
   CboSearch.AddItem Trim(.Fields("Nama Pasien").Value) & _
                     " [RM: " & Trim(.Fields("Nomor Rekam Medik").Value) & "] [Alamat: " & _
                     Trim(.Fields("Alamat").Value) & "] [Pengenal: " & _
                     Trim(.Fields("Jenis Pengenal").Value) & "-" & _
                     Trim(.Fields("Nomor Pengenal").Value) & "] [HP: " & _
                     Trim(.Fields("Handphone").Value) & "] [Phn: ]" & _
                     Trim(.Fields("Phone").Value) & " ?" & Trim(.Fields("Register Pasien").Value)
   .MoveNext
  Wend
 End With
End If

Sementara itu untuk VB.NET metode diatas tidaklah mungkin untuk dilakukan jika kita menggunakan ADO.NET karena arsitekturnya yang disconected. Berhari-hari saya mengalami kebuntuan ide hanya karena problem ini,tapi alhamdulillah secara tidak sengaja saya mendapatkan ide, kenapa Dataset yang saya buka tidak saya convert dulu keDatarow untuk memudahkan pindah antar baris? Berangkat dari ide diatas saya langsung membuat code dibawah ini

'VB.NET style
'Using Dataset and datarow

'Deklarasikan fungsi untuk buka dataset
'Fungsi ini bisa dipakai berkali-kali
Public Function OpenDataSet(ByVal SqlCommand As String) _
    As DataSet
        Dim Command As New MySqlCommand(SqlCommand, Koneksi)
        Dim Adapter As MySqlDataAdapter = New MySqlDataAdapter()
        Adapter.SelectCommand = Command

        Dim Ds As New DataSet
        Adapter.Fill(Ds)
        Return Ds
End Function

'Panggil fungsi opendataset dan masukkan data kedalam combo
Private Sub CboBaruKategori_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboBaruKategori.Click
        dtKelompokData = New DataTable
        dtKelompokData = GetData("Insert Into `KelompokData` (`Keterangan`,`Jenis`) Values ('" & _
                                 Trim(CboKategori.Text) & "','Kategori')")

        dsKelompokData = New DataSet
        dsKelompokData = OpenDataSet("Select * From `KelompokData` Where `Jenis` = 'Kategori'")
        CboKategori.Items.Clear()

         'Looping sebanyak data yang ada
        For Each DataRow In dsKelompokData.Tables(0).Rows
            CboKategori.Items.Add(Trim(DataRow("Keterangan").ToString))
        Next
End Sub

Jika dilihat dari penggalan code diatas, dari segi arsitektur dan code program antaran VB.6 dan VB.NET sama sekali berbeda, Perhatikan code yang berwarna merah diatas, bisa dilihat perbedaan model loop pada VB.6 dan VB.NET, walaupun tujuannya sama yakni untuk membinding semua record yang diquery berdasarkan QueryString. Sekian tulisan singkt ini saya buat, semoga bisa membantu bagi rekan-rekan programer. Semoga Allah tetap menganugerahkan taufik dan hidayahnya bagi hatiku yang kotor ini :) .

Incoming search terms:

  • Add DataRows to a Combobox in VB NET vb net
  • vb net combobox add items
  • set combo value member vb net
  • Looping pada vb
  • combobox vb adodb
  • combobox vb
  • combobox value in vb net
  • combo box pada vb net
  • combo box on vb net
  • vb net reset combobox

binding navigator untuk manipulasi data divb.net

banyak cara untuk manipulas data pada vb.net, menggunakan dataset, datareader, datatable dan metodelainnya. Untuk kali ini saya menggunakan binding navigator sebagai basic untuk manipulasi database divb.net.
frmbarang
Untuk bisa melakukan binding database anda terlebih dahulu harus mempunyai object bindingsource yang telah diset datasource pada sebuah datatable. Untuk lebih mempermudah kita akan langsung bahas codenya. Pertama-tama kita akan membuat sebuah object datatable untuk menampung record dari table misalnya table barang. Seperti dibawah ini

Dim connectionString As String = _
           "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                                Application.StartupPath & "\simplePOS.mdb"

        Dim Conn As Data.OleDb.OleDbConnection = _
            New Data.OleDb.OleDbConnection(connectionString)

        Dim Command As New Data.OleDb.OleDbCommand(sqlCommand, Conn)
        Dim Adapter As Data.OleDb.OleDbDataAdapter = New Data.OleDb.OleDbDataAdapter()
        Adapter.SelectCommand = Command

        Dim Table As New DataTable
        Table.Locale = System.Globalization.CultureInfo.InvariantCulture
        Adapter.Fill(Table)

Setelah kita membuat sebuah object datatable kita bisa membinding datatable ini kedalam sebuah datasource, sebut saja kode diatas adalah sebuah fungsi dengan nama GetData(), sekarang kita akan binding datatablenya kedalam bindingsource dan bindingnavigator.

Private Sub InitializeDataGridView()
        Try
            ' Set up the DataGridView.
            With Me.grdBarang
                ' Automatically generate the DataGridView columns.
                .AutoGenerateColumns = True
                ' Set up the data source.
                bsBarang.DataSource = GetData("Select * From Barang Order By [Nama Barang]")
                .DataSource = bsBarang
                ' Automatically resize the visible rows.
                .AutoSizeRowsMode = _
                    DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders

                ' Set the DataGridView control's border.
                .BorderStyle = BorderStyle.Fixed3D

                ' Put the cells in edit mode when user enters them.
                .EditMode = DataGridViewEditMode.EditOnEnter
            End With
        Catch ex As Data.OleDb.OleDbException
            MessageBox.Show("To run this sample replace " _
                & "connection.ConnectionString with a valid connection string" _
                & "  to a Northwind database accessible to your system.", _
                "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            System.Threading.Thread.CurrentThread.Abort()
        End Try
    End Sub

Pada kode diatas, perhatikan tulisan warna merah, untuk mengeset datasource keobject bsBarang ( as BindingSource) kita langsung mengambil object datatable dari fungsi getdata(), yang kita buat sebelumnya. Dan untuk mengaitkan data pada bindingnavigator kita cukup mengeset properti bnBarang.BindingSource = bsBarang, Sederhana sekali, sebenarnya masih banyak cara lainnya, tergantung logic kita mau diapakan semua object yang ada pada vb.net.

Incoming search terms:

  • bindingnavigator vb net
  • BindingNavigator vb net database
  • manipulasi database pada vb net
  • membuat binding di vb net

Melakukan event dalam thread di vb.net

Semalam saat kompilasi aplikasi saya ama broklyn sempat bingung, event form load terlalu lambat untuk ditampilkan karena aplikasi harus menyelesaikan beberapa thread dahulu. Misalnya pada VB 6.0 kita mempunyai thread proses seperti ini :

while(1)
 doevent
 if (flag ==1) then
  'Proses disini
 end if
End while

Tapi di VB.net penulisan DoEvent diatas sama sekali berbeda, sempat bingung juga sih tapi setelah searching dan baca-baca di MSDN ternyata untuk melakukan event dalam thread menggunakan class Aplication, yakni Application.DoEvents(), Dengan method ini kita bisa memaksimalkan kinerja aplikasi.

Migrasi dari MS-SQL ke mySQL di VB.NET

Banyak jalan menuju roma, pepatah sederhana yang bermanfaat. Kemarin aku sama broklyn sempat pusing juga melakukan migrasi codeing dari MS-SQL ke mySQL 5.0, Migrasi ini mulai dari struktur query, Data Provider, Table Structured, Dan masih banyak lagi yang harus dilakukan.

Cukup pusing juga, tapi mau tidak mau hal ini harus dilakukan karena target penjualan dari aplikasi sekarang lebih diarahkan ke end-user menengah kebawah, kebanyakan end-user belum berani untuk investasi ke DBMS bayar nan mahal.
Adapun beberapa perubahan yang dilakukan pada code aplikasi antara lain pada connectionstring dan data provider yang digunakan.

Imports MySql.Data.MySqlClient
Module Koneksi
    Public Conn As MySqlConnection
    Public Sub MyCon()
      Conn = New MySqlConnection
        Conn.ConnectionString = "Server=" & _
        Trim(DS.Tables("setting").Rows(0).Item("server name").ToString) & _
        ";Database=" & _
        Trim(DS.Tables("setting").Rows(0).Item("database").ToString) & _
        ";Uid=" & _
        Trim(DS.Tables("setting").Rows(0).Item("user name").ToString) & _
        ";Pwd=" & Trim(DS.Tables("setting").Rows(0).Item("user password").ToString) & ";"
        Conn.Open()
    End Sub
End Module

Pada struktur query dan method error handling

DC = New MySqlCommand("Insert into barang ( `kode_barang` , `nama_barang` , " & _
         "`HPP` , `HJual_unit` , `stok_outlet` , `stok_gudang`" & _
         " , `satuan` , `kat_id`) values ('" & _
         Trim(TxtKode.Text) & "','" & _
         Trim(TxtNama.Text) & "'," & _
         Val(TxtHPP.Text) & "," & _
         Val(TxtHJual_Unit.Text) & "," & _
         Val(TxtStokOutlet.Text) & "," & _
         Val(TxtStokGudang.Text) & ",'" & _
         Trim(TxtSatuan.Text) & "','" & _
         Trim(TxtKat_Id.Text) & "')")

        DC.Connection = Conn
          Try
            DC.ExecuteNonQuery()
            Catch err As MySqlException
                MessageBox.Show(err.Message)
            End Try

Dan masih banyak lagi perubahan-perubahan yang harus dilakukan jika melakukan migrasi ke mysql, yang paling berat yakni codeing ulang stored procedure. TSQL di MS-SQL beda sekali syntaxnya dengan SP di mySQL.

Incoming search terms:

  • koneksi mysql dengan vb net
  • seting mysql dan vbnet

recordset atau dataset bingungkan?

Kebanyakan programer yang basis sebelumnya vb 6.0 ketika beralih ke vb.net masih senang dengan recordset dalam memanipulasi data pada database, hal ini tidak salah karena kemudahan dan mungkin juga sudah sangat familiar dengan recordset. Saya sendiri yang baru-baru ini konsen kembali ke vb.net masih bingung dengan konsep dataset. Karena bingungnya saya terpaksa mengimport dan tetap mempertahankan ADODB di VB.NET, bagi rekan-rekan yang sama seperti saya untuk mengimport ADODB bisa mengikuti step berikut ini

  • Import ADODB dengan jalan memasukkan kereference diproject.
  • Untuk urusan code sama seperti VB 6.0, seperti yang ditampilkan dibawah ini
Dim cnn As New Connection()
Dim cm As New Command()
Dim rs As New Recordset()

Private Sub btnDataset_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnDataset.Click
        ' An ADO 2.6 connection and recordset are created to pull back
        ' data using a SELECT statement.  A data adapter and dataset are
        ' created.  The data Adapters fill method is used to populate
        ' the dataset with the data in the ADO 2.6 recordset.
        ' The dataset is then assigned to the data grid control.
        Dim strSQL As String = "SELECT CustomerID, " & _
                               "       CompanyName, " & _
                               "       ContactName, " & _
                               "       COuntry, " & _
                               "       Region, " & _
                               "       Phone, " & _
                               "       Fax " & _
                               "FROM Customers"
        rs = cnn.Execute(strSQL)
        ' Create Dataset and data adapter objects
        Dim ds As New DataSet("Recordset")
        Dim da As New OleDb.OleDbDataAdapter()
        ' Call data adapter's Fill method to fill data from ADO
        ' Recordset to ADO.NET dataset
        da.Fill(ds, rs, "Customers")
        ' Assign data set to grid control
        dgMain.DataSource = ds
        dgMain.DataMember = "Customers"
    End Sub

Incoming search terms:

  • dataset pada vb net