Friday, July 27, 2012

vb.net එක්ක MySQL - 2nd post


කොහොමද ඉතින්...අලුත් post එකකින් කට්ටියව බලන්න හිතුනා..strike එකට පින් දීල පටන් ගත්තට මොකද දැන් නම් මටත් එපා වෙලා තියෙන්නෙ...හරි එවා වැඩක් නෑ..අද අපි කරන්න යන්නෙ මොනවද කියල බලමුකෝ එහෙනම්. මම කලින් post එකෙන් කියුවනේ programme එකක් හදනවා කියල..එත් හොදටම design කරල හදන්න ගියොත්..Database model එක හදන හැටි ER - diagrams ගහන හැටි ඔක්කොම අදින්න වෙනවා..:D එක නිසා මම programme එකේ එක එක part කරන කොට එකට අදාලව database එක හදා ගන්න හැටි කියා දෙන්නම්..එහෙම හොදයි මට හිතෙන විදියට...

හොදයි මම bookshop එකකට තමයි programme එක හදන්න යන්නේ..දැන් ඉතින් කලපනා කරල බලන්නකෝ bookshop එකක මොනාද වෙන්නෙ කියල...අපි ඒ දේවල් එක එක සලකලා බලමු...හරි මුලින් ම අපි හදන මේ programme එක පාවිච්චි කරන users ලා ගොඩක් ඉන්න පුලුවන් කියලා තේරෙනවනේ..අද post එකෙන් මම users ලව manage කරන හැටියි කියා දෙන්න හදන්නේ...

MySQL වගේ DBMS - Data base management system එකක් අපේ database එක විදියට use කරන කොට අපට users ල handle කරන්න ක්‍රම 2ක් තියෙනවා..එකක් තමයි MySQL සපයන users ල...මේක තමා වඩා ආරක්ෂිත ක්‍රමය..හැබයි මේ ක්‍රමය web application එකකදි නම් use කරන්න අමාරුයි..ඇයි ඉතින් ඒවගෙදි users ලම account හදා ගන්නවනේ..එතකොට වෙනම users table එකක් තියාගෙන ඒකෙන තමයි users ල handle කරන්න ඕනේ... හැබැයි අපි මේ desktop application එකේ users ල ගනන සීමිතයි..ඒ වගෙ වෙලවට තමයි MySQL users ලාම අපේ application එකේ users ල විදියට යොදාගන්න පුලුවන්..අද අපි කරන්න යන්නෙ MySQL users යොදා ගෙන අපේ app එකට ලොග් වෙලා එකේ main window එක ගන්න විදිය...මේ ක්‍රමයට ඔයලගේ වෙනත් programme එකක users ලව manage කරන්නත් පුලුවන්...එහෙනම් ඔන්න පහල video guide 1කේ තියෙනව MySQL users ල add කරන හැටි... :-).ආ අහන්න අමතක උනා කටිටිය mysql windows installer එක try කරාද? නැත්නම් මෙතන කරන හැටි තියෙනවා..:-)




ඊලගට තියෙන්නේ VB වලින් පහල තියෙන screenshot වල වගේ window 2ක් හදා ගන්න එක..

Login Window එක මේ විදියට හදා ගන්න...


මේ වින්ඩෝ එකෙ පලවෙනි text box එකේ name එකට txtuser කියලත් දෙවෙනි එකට txtpasswd කියලත් දෙන්න. ඒ properties හදන window එක view -> properties window හෝ F4 එබීමෙන් ගන්න පුලුවන්..

Main Window එක මේ විදියට හදා ගන්න...


මේ තියෙන්නේ code එක..දන්නෙ නැති අය බයවෙන්න එපා හොදේ කියල දෙනම්කො.. :-)

 ලොකු කරලා බලන්න image එක click කරන්න..

දැන් code එක පැහැදිලි කර ගනිමු.. මුල්ම line එකේ Imports MySql.Data.MySqlClient මේකෙන් කියල තියෙන්නෙ vb.net MySQL එක්ක සම්බන්ධ කරන්න ඕනේ object හදා ගන්න ඕනේ class import කරපු එක. java වල වගේම තමයි :-)..ඒත් මේක කරන්න කලින් MySQL වලට referrence එක add කරලා තියෙන්න ඔනේ..මුල්ම post එකේ ඇති ;-)..

 ඊලග code එක ලියන්න කලින් design කරපු login window එකේ login button එක double click කරාම
 Private Sub btnlog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlog.Click

End Sub

කියල code කොටසක් generate වෙනවා..ඕක ඇතුලේ තමයි button එක click කරාම මොකක්ද වෙන්න ඔනේ කියල ලියන්න ඔනේ..

මේ කොටසට උඩින් සහ Public Class Form1 එකට යටින් Dim conn As MySqlConnection code කොටස ඇතුලු කරන්න ඕනේ..මේකෙන් කරලා තියෙන්නේ conn කියල variable එකක් declare කරපු එක..dim කියන්නෙ vb වල variable declare කරන type එකක්. අනිත් languages වල වගේම dim වලට scope එකක් තියෙනවා..හරියට c වල static අනම් මනම් වගේ..dim වැඩ කරන්නෙ අදාල form එකේ විතරයි..conn කියන variable එකේ type එක MySqlConnection වෙනවා..ඒ කියන්නෙ conn කියන variable එකට අල්ලන්න පුලුවන් MySqlConnection ජාතියේ ඒවා විතරයි..MySqlConnection ජාතියෙ object එකක් විතරයි..ගොඩනේ ;-)

ඊලගට බලමු අර double click කරලා ගනිපු code එක ඇතුලේ ලියපුවා ගැන..
conn = New MySqlConnection
        conn.ConnectionString = "server = localhost;" _
                                & "user id=" & txtuser.Text & ";" _
                                & "password=" & txtpasswd.Text & ";" _
                                & "database=bkshop"
        Try
            conn.Open()
            Form2.Show()
            conn.Close()
        Catch ex As MySqlException
            MsgBox("error occurred while opening database" & ex.Message)
        Finally
            conn.Close()
            Me.Hide()
            Me.Close()
        End Try
මුලින්ම කරලා තියෙන්නේ conn එකට MySqlConnection object එකක් හදලා එයාට ඒක අල්ල ගන්න කියපු එක..;-) new කියන key word එක java වල වගේම අලුත් object එකක් හදන්න vb වලදිත් යොදාගන්නවා. ඊට පස්සේ කරලා තියෙන්නේ හදාගනිපු conn object එකේ connectionstring කියන property එක set කරපු එක.
ඇත්තටම vb.net වල ඉදන් MySQL server එකට connect වෙන්න යොදාගන්නෙ MySqlConnection object එක. connect වෙන්න ඔනේ කොයි විදියටද කියන එක connection string property එකෙන් කියවෙනවා..
ඒක ලියන ක්‍රමය තමයි
server = server name; user id = username; password = password; database = database name;
 ඕකේ server name කියන තැනට අදාල server එකේ නමත් user id එකට server එකේ අදාල user ගෙ නමත් password කියන එකට අදාල user ගෙ password එකත් එන්න ඕනේ. database name එකට programme එකට අදාල database එකේ නමත් එන්න ඕනේ..
 conn.ConnectionString = "server = localhost;" _
                                & "user id=" & txtuser.Text & ";" _
                                & "password=" & txtpasswd.Text & ";" _
                                & "database=bkshop"
මේ කොටසෙදි ඒ අදාල නම් set කරලා තියෙනවා..vb වල string concatanate operator එක & එක.ඒ වගේම string එක පහල පේලියත් සමග සම්බන්ධ නම් _ operator එකෙන් ඒක කරන්න පුලුවන්.මේ දෙක යොදාගෙන අපි connection string එක ගොඩනගලා තියෙනවා..ඒකෙදි user name එකයි password එකයි login form එකේ text box දෙකෙන් අරන් තියෙනවා. txtuser.text එකෙන් username එකත් txtpasswd.text කියන එකෙන් password එකත් අරන් තියෙනවා.vb වල text box එකක property එකක් ගන්න නම් අදාල text box එකේ නම ගැහුවම properties ගොඩක් පෙන්නනවා. මෙතනදි අපට අවශ්‍ය වෙන්නෙ text property  එක.

ඊලග code කොටසෙන් කරලා තියෙන්නෙ connection string එකට අදාලව server එකට connect වීම. ඒ අතරතුර මොනයම් හෝ දත්තයක් වැරදීම නිසා හෝ වෙනත් හේතුවක් නිසා connection එක ගොඩ නගා ගන්න නොහැකි උනොත් programme එක terminate වෙන නිසා මෙතනදි exception handling කොටසක් යොදාගෙන තියෙනවා. ඇති දේයක් නෑ ඉතින් ;-)..try කොටස ඇතුලේ තියෙන code එක execute කරන්න try කොරලා බැරිඋනොත් වෙනදෙයක් කරන්න කියල තමයි exception handling කොටසෙන් කියන්නෙ. හරි ගියත් නැතත් කරන්න ඔනෙ දේ finally කොටසෙ ලියලා තියෙනවා.try එකේ මුලින්ම ලියලා තියෙන්න conn object එකේ open කියන method එක call කරපු එක. හරි ගියොත් හරි ;-). එහෙම උනොත් main form එක show කරනවා, වැඩේ වැරදුනොත්.එතකොට තමයි catch කොටස execute වෙන්නෙ..ඒකෙදි msg box එකක් display කරන්න code එක ලියලා තියෙන්නෙ. ඒකෙදි custom msg එකත් එක්ක exception එක ඇති වෙන්න හේතු උන error msg එක එකතුවක් විදියට පෙන්නනවා. මෙතනදි ඇති උනොත් ඇති වෙන්නේ mysql server  එකට connect වෙන්න යනකොට ඇති වෙන exception එකක ඒක නිසා exception එකේ ජාතිය mysqlexception ගනන් ගන්න එපා තෙරෙන්නෙ නැත්නම් පස්සෙ තෙරෙයි ;-). එයාට තියෙනව msg කියල property එකක් ඒකෙ තමා අදාල error msg එක තියෙන්නේ..හරිනේ..වැඩේ ඉවරයි finally conn එකේ close කියන මෙතඩ් එක call කරලා login form එක hide කරල පස්සේ ලොගින් ෆොර්ම් එක close කරනවා. වැඩේ ගොඩ.. :-D හරි නොතේරුන දෙයක් තියෙනවා නම් අහන්න දන්න විදියට කියලා දෙන්නම්කො..ඊලගට අපි bookshop එකට programme එක ටිකෙන් ටික හදමු.. ආස කෙනෙක් ඉන්නවා නම් ගැලපෙන ER - diagram එකක් ගහල එවන්න..ඒකට DB එකක් ගහලා programme එක හදමු..සැකයි ඉතින් එහෙම අය ඉදීද කියල නම්.. :-D හරි එහෙනම් ඊලග පොස්ට් එකෙන් හම්බවෙමු..:-) කරපුවා නොතේරුනා නම් video එක try කරන්න මෙතනින්.. :-)