stmikbg-dot-com

Informasi Seputar IT

Archive for the ‘.Net Programing’


membuat fungsi konversi tanggal sendiri (yyyy-mm-dd)

Terkadang menjengkelkan ketika kita menyimpan nilai date ke SQL Server 2008, sering sekali muncul error kesalahan konversi tanggal dari SQL Server.

Apalagi ketika kita lagi pusing-pusingnya codeing, error yang sebenarnya sederhana kelihatannya rumit sekali, ini pengalaman saya, saya membutuhkan beberapa hari untuk debuging untuk bisa mentrace letak kesalahan pada code saya.

Alaminya sebuah database server menyimpan format tanggal dalam format (yyyy-mm-dd), nah disini letak kekeliruan kita, biasanya kita langsung aja mengirim data dengan type date tanpa terlebih dahulu kita konversi keformat default database.

Biasanya kita sering menggunakan fungsi cdate() untuk merubah data type string ke data type date. Memang data itu lsg kebentuk date tp formatnya biasanya mengikuti format regional setting yang aktif saat itu dari komputer yang digunakan, namun ketika kita kirim dalam bentuk query sering sekali terjadinya Run Time Error. Ok, langsung saja kita intip fungsi sederhana yang saya bikin ini, logikanya sebelum sebuah karakter tanggal dimasukkan ke query kita terlebih dahulu melakukan konversi formatnya terlebih dahulu, hasil dari konversi format ini yang akan dimasukkan kequery. Untuk lebih jelasnya bisa dilihat dicode dibawah ini

Public Shared Function ConvertTanggal(ByVal dtTanggal As System.Windows.Forms.DateTimePicker) As String
        Dim cBulan As String = ""
        Dim cTanggal As String = ""
        Dim cTanggalMasuk As String = ""
        If Len(dtTanggal.Value.Month) = 1 Then
            cBulan = "0" & dtTanggal.Value.Month.ToString.Trim
        Else
            cBulan = dtTanggal.Value.Month.ToString.Trim
        End If

        If Len(dtTanggal.Value.Day) = 1 Then
            cTanggal = "0" & dtTanggal.Value.Day.ToString.Trim
        Else
            cTanggal = dtTanggal.Value.Day.ToString.Trim
        End If
        ConvertTanggal = dtTanggal.Value.Year & "-" & cBulan.Trim & "-" & cTanggal.Trim
    End Function

Incoming search terms:

  • cara menyimpan tipe data date di database sqlserver di vbnet
  • membuat konversi vb net
  • YYYY-MM-DD

atasi overload saat add control dipanel vb.net

Saat kita memanggil sebuah UserControl Class (System.Windows.Forms) pada sebuah panel control jika kita tidak mendeklarasikan user control diatas kelas, tetapi dideklarasi saat control tersebut dipanggil, pada .net user control tersebut akan dimuat berulang-ulang dalam memory. Bisa dilihat pada code dibawah ini

 Private Sub btnEntryPegawai_ItemClick()  Handles btnEntryPegawai.ItemClick
            Dim ctrlcHRD As New ctrlHRD
            Me.pnlUtama.Controls.Add(ctrlcHRD)
            ctrlcHRD.Visible = True
            ctrlcHRD.BringToFront()
 End Sub

Jika logic yg digunakan seperti diatas, control akan dimuat berulang-ulang saat btnEntryPegawai mendapatkan even click. Solusinya bisa kita mendeklarasikan control keseluruhan diatas kelas ( saat form diload) dengan konsekuensi load formnya agak lama. Lantas jika tidak ingin proses load form terganggu kita bisa bikin solusi seperti kode dibawah ini

Private Sub btnEntryPegawai_ItemClick() Handles btnEntryPegawai.ItemClick
        FindControl("ctrlHRD", pnlUtama)
        If Not lFound Then
            Dim ctrlcHRD As New ctrlHRD
            Me.pnlUtama.Controls.Add(ctrlcHRD)
            ctrlcHRD.Visible = True
            ctrlcHRD.BringToFront()
        Else
            Me.pnlUtama.Controls(nIndex).BringToFront()
        End If
    End Sub

Cari dulu nama control dimemory, jika belum ada bisa dipanggil untuk dimuat dimemory, tetapi jika sudah ada tinggal kita show kembali. Ini fungsi untuk mencari control yang telah dipanggil dimemory, silahkan dikembangkan lagi

Public lFound As Boolean
    Public nIndex As Integer
    Public Sub FindControl(ByVal sControlName As String, ByVal cPanel As Windows.PanelControl)
        lFound = False
        Dim nCount As Integer
        nCount = 0
        For Each Control In cPanel.Controls
            If sControlName.Trim = Control.Name.ToString.Trim Then
                lFound = True
                nIndex = nCount
            End If
            nCount = nCount + 1
        Next
    End Sub

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