Dimanakah kita menyimpan setting koneksi agar mampu lebih dinamis dan dapat disetting oleh user?
Aplikasi dengan framework .NET menyediakan akomodasi built in untuk menyimpan setting yang dapat diakses dan diatur saat runtime. Sehingga user dapat mengganti setting tanpa harus melakukan compile ulang aplikasi.
Untuk lebih jelas nya kita langsung saja buka Project Properties dengan cara klik menu Project -> [Nama Project] Properties.
Saat Project Properties terbuka klik tab Setting yang ada disisi kiri. Terdapat 4 kolom isian untuk masing-masing baris setting yakni Name, Type, Scope, Value. Rani isikan setting-setting yang diperlukan untuk koneksi selaku berikut:
Name merupakan nama dari setting yang nantinya mampu diundang dari code.
Type ialah tipe data untuk nilai yang diisikan.
Scope terdiri dari 2 jenis User dan Application. Scope Application bersifat readonly (cuma mampu dibaca) dikala runtime sementara scope user readable dan writeble (bisa dibaca dan diganti). Karena disini kita ingin user mampu mengontrol sendiri setting maka dipilihlah Scope User. Setting ini akan tersimpan pada level user account, alasannya adalah itu kalau user window login berbeda bisa memiliki setting berlainan pula.
Sementara value merupakan nilai default dari setting sebelum nanti user mampu menggantinya.
Oke, lanjut.....
String koneksi ialah variable yang perlu diakses dari hampir seluruh bagian project alasannya itu mari kita buat variable-variable public yang disimpan dalam sebuah module.
Klik Project -> Add Module...
Pilih template Module, berinama (acuan: ModGlobalVar) lalu klik Add.
Di dalam nya Rani simpan 4 variable untuk menyimpan nama server, user, password, dan nama database. Serta 1 buah variable string untuk menyimpan connection string lengkap.
Module ModGlobalVar
Public dbServer As String
Public dbUser As String
Public dbPassword As String
Public dbName As String
Public sLocalConn As String
End Module
Kemudian kita buat juga sebuah sub procedure public untung menawarkan nilai pada variable-variable tersebut yang diambil dari user setting. Bisa disimpan juga dalam module sehingga bisa diundang dimanapun dalam project dikala dibutuhkan.
Public Sub GetDatabaseSetting()
dbServer = My.Settings.dbServer
dbUser = My.Settings.dbUser
dbPassword = My.Settings.dbPassword
dbName = My.Settings.dbName
sLocalConn = "server=" & dbServer & ";user id=" & dbUser & ";" & _
"password=" & dbPassword & ";database=" & dbName
End Sub
Sub GetDatabaseSetting diundang saat applikasi mulai dilaksanakan (misal nya saat form splash load). Tapi ketika ini Rani konsentrasi dahulu ke form koneksi nya yah, jadi sub ini akan dipanggil pada load form koneksi.
Oiya kita tambahkan juga di module sebuah function untuk mengecek apakah setting database koneksi dapat terkoneksi sengan baik.
Public Function DatabaseConnected(Optional ByVal Server As String = "", _
Optional ByVal User As String = "", _
Optional ByVal Password As String = "", _
Optional ByVal DatabaseName As String = "") As Boolean
Dim conn As MySqlConnection
conn = New MySqlConnection()
If Server = "" And User = "" And Password = "" And DatabaseName = "" Then
conn.ConnectionString = sLocalConn
Else
conn.ConnectionString = "server=" & Server & ";user id=" & _
User & ";password=" & Password & _
";database=" & DatabaseName
End If
Try
conn.Open()
conn.Close()
Return True
Catch myerror As MySqlException
Return False
MessageBox.Show("Error: " & myerror.Message)
Finally
conn.Dispose()
End Try
Return False
End Function
Nah ceritanya untuk mempercepat, kita mampu pakai template form obrolan untuk membuat form ini:
Atur UI sebagai berikut:
Code:
Imports System.Windows.Forms
Public Class frmConnection
Private Sub frmConnection_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
GetDatabaseSetting()
txtDbServer.Text = dbServer
txtDbUser.Text = dbUser
txtDbPassword.Text = dbPassword
txtDbName.Text = dbName
End Sub
Private Sub OK_Button_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles OK_Button.Click
If DatabaseConnected(txtDbServer.Text, txtDbUser.Text, _
txtDbPassword.Text, txtDbName.Text) = True Then
With My.Settings
.dbServer = txtDbServer.Text
.dbUser = txtDbUser.Text
.dbPassword = txtDbPassword.Text
.dbName = txtDbName.Text
.Save()
End With
GetDatabaseSetting()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End If
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
End Class
Pada event OK_Button_Click kita mampu melihat bagaimana cara mengganti nilai setting.
Sekian, selamat menjajal
Click here if you like this article.
Sumber http://rani-irsan.blogspot.com
EmoticonEmoticon