stmikbg-dot-com

Informasi Seputar IT

Archive for the ‘.Net Programing’


Sending Key antara vb.6 dan vb.net

Saat ini saya sudah mulai konsen untuk development software dilingkungan vb.net, dan sebelumnya saya masih menggunakan vb.6 environment, melihat perkembangan dunia komputer sekarang ini, dipicu sejak dirilisnya windows vista oleh microsoft kemudian microsoft merelease Os terbarunya yakni windows 7 jadi arah bisnis software kedepan akan mengalami perubahan base dan metode pemrograman.
Secara bisnis, aplikasi yg masih menggunakan core COM ataupun COM+ akan ketinggalan jauh, baik dari segi kompatibilitas dengan sistem operasi maupun dari segi teknologinya, yah mau tidak mau para pengembang software harus segera melakukan migrasi keframework yang lebih canggih, dan kebetulan framework yang saya pilih yakni .NET Framework, memang terhitung terlambat bagi saya untuk segera migrasi, tapi masih lebih baik daripada tidak sama sekali.

Saat melakukan migrasi code dari VB.6 ke VB.NET banyak sekali penyesuaian-penyesuaian yang harus saya lakukan, baik dari code maupun konsep dari pemerograman itu sendiri, contoh kecilnya seperti judul diatas, misalnya saat kita ingin memanfaatkan event keypress pada control textbox, jika key yang ditekan adalah tombol “ENTER” otomatis program akan mengirim key “TAB” untuk loncat kecontrol lainnya, tetapi jika selain dari itu aplikasi harus melakukan converting kehuruf besar (Misalnya ditekan huruf ‘a’ maka akan menjadi huruf ‘A’).

Dari permasalahan diatas, kita akan membandingkan codenya.

'VB.6 Code
Private Sub TxtKodeBarang_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
  SendKeys "{Tab}"
Else
  KeyAscii = Asc(UCase(Chr(KeyAscii)))
End If
End Sub

Bandingkan dengan kode VB.NET dibawah ini

Private Sub TxtKodeBarang_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtKodeBarang.KeyPress
        If Asc(e.KeyChar.ToString) = 13 Then
            SendKeys.Send(vbTab)
        Else
            e.KeyChar = UCase(e.KeyChar)
        End If
 End Sub

Sama sekali berbeda dari segi kode maupun konsepnya, dan masih banyak lagi konversi kode yang harus saya lakukan, yah pelan-pelan tapi pasti lah. Yuk Majulah Dunia IT Indonesia.

Transformasi data dari MySQL ke MSSQL

Berhari-hari saya coba browsing diinternet untuk mencari software yang bisa melakukan transformasi data dari MySQL Ke MSSQL tapi tetap saja tidak ketemu, saya mencoba langsung dari enterprise managernya MSSQL sapa tau ada option IMPORT dari Enggine MySQL tetap saja nihil.. Benar-benar Microsoft anti Open Source ya, sampai masalah kompatibilitas hal sekecil ini tidak diincludekan. Sebenarnya banyak terdapat software-software untuk melakukan transformasi ini, tapi terkadang transformasi yang dilakukan ini sering terjadi antar table dengan field yang berbeda. Misalnya seperti kasus yang saya alami ini. Seminggu ini saya mencoba melakukan transformasi tabel ICD ( International Code Of Disease), Berhubung struktur tabel yang ada dari Tabel Sumber ( MySQL) berbeda dengan Struktur Tabel Tujuan ( MSSQL) maka saya terpaksa membuat sendiri tools kecil untuk melakukan proses transformasi ini.
data_transform

Model tools yang saya buat bisa dilihat pada screenshot diatas, sekarang kita akan membahas panjang lebar mulai dari proses transformasi, source code, sampai keverifikasi data transformnya, apakah ada data yang lost saat transformasi atau tidak.

Code Project Add-In for Visual Studio 2008

vs2008_search2Bagi programer yang menggunakan VS 2008 ada sebuah add in yang bisa dijadikan referensi untuk help, jadi ketika anda melakukan codeing, jika menemui kebuntuan anda bisa mencari solusinya langsung diadd-in ini. Add-in ini bisa mencari lebih dari 23.000 artikel dan code project serta menampilkan hasil yang relevan dari keyword yang dicari. Ayuk tunggu apa lagi buruan download disini

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 :) .

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.