our notes for our youngers

September 13, 2009

ADO.NET in C# (part 1)

Filed under: ADO in Window Application — Tags: , , , , — sevenlamp @ 11:15 AM

ado.net
ကြၽန္ေတာ္တို႔ေတြ database ထဲက record ေတြကို User Interface မွာ ရွိတဲ႔ datagrid လို၊ textbox လို control ေတြမွာ ျပဖို႔ ျပင္ဖို႔ ဘယ္လို ခ်ိတ္ဆက္ရမလဲ ဆိုတဲ႔ အေၾကာင္းကို ဆက္ျပီးေလ့လာၾကရေအာင္။ C# window application မွာ database နဲ႔ ခ်ိတ္ဆက္ဖို႔အတြက္ နည္းလမ္း ၂ မ်ိဳး သံုးလို႔ရပါတယ္။ နံပါတ္ ၁ နည္းလမ္းကေတာ့ data ျပမယ့္ UI control နဲ႔ data ရွိတဲ႔ databaseကို တိုက္ရိုက္ခ်ိတ္ဆက္ျခင္း ျဖစ္ျပီး ဒီလိုေဆာင္ရြက္နိင္ဖို႔အတြက္ SQL DataSource object ကို သံုးရပါတယ္။ နံပါတ္ ၂ နည္းလမ္းကေတာ့ database table ေတြထဲက data ေတြကို ကြၽန္ေတာ္တို႔ program ရဲ႕ memory ေပၚမွာ dataset ေတြ အေနနဲ႔ သိမ္းထားျပီး၊ အဲ့ဒီ dataset ေတြနဲ႔ UI controls ေတြနဲ႔ ခ်ိတ္ဆက္ျခင္းပဲ ျဖစ္ပါတယ္။ ဒီလို တဆင့္ခံ ခ်ိတ္ဆက္ဖို႔ အတြက္ေတာ့ OBJECT DataSource နဲ႔ dataset တို႔ကို သံုးရပါတယ္။ ကြၽန္ေတာ္ကေတာ့ dataset တဆင့္ခံျပီး object datasource နဲ႔ သံုးရတာကို ပိုျပီးၾကိဳက္တယ္ဗ်။ ဘာလို႔လဲဆိုေတာ့ data အသြင္းအထုတ္ transaction တစ္ခုစီအတြက္ database ကို အျမဲသြားေနစရာမလိုဘူး။ dataset table ထဲမွာပဲ လုပ္လို႔ရတယ္။ အားလံုးျပီးလို႔ စိတ္ေက်နပ္ျပီဆိုမွ database ထဲကို တစ္ၾကိမ္ထဲ update လုပ္နိုင္တယ္။ ေနာက္ပိုျပီးေကာင္းတာက quary ေတြက dataset တစ္ေနရာထဲမွာ စုျပီး ေရးထားတာေၾကာင့္ လိုအပ္လို႔ modify လုပ္ခ်င္တဲ႔ အခါမွာ လြယ္ကူတယ္။ sql datasource ကိုသံုးရင္ data ျပမယ့္ေနရာ ၃ ေနရာရွိရင္ quary ကို သံုးေနရာလံုးမွာ သံုးခါေရးရမွာဗ်။ ဒါဆို ျပင္မယ္ဆိုရင္လည္း သံုးေနရာလံုးမွာ လိုက္ျပင္ရလိမ့္မယ္။ ခ်ိတ္ဆက္ပံု ၂မ်ိဳးလံုးကို ကြၽန္ေတာ္ရွင္းျပပါမယ္၊ ပထမဆံုး database ထဲမွာ table ေလးတစ္ခုအရင္ သြားေဆာက္လိုက္ပါဦး။


DATABASE NAME => mySaleDB
TABLE NAME => Category
Field name Data Type AllowNull
CategoryID int false PrimaryKey (auto increment)
CategoryName varchar(50) true
Description varchar(500) true
Status bit true Default vale – true

အိုေက.. ရျပီေနာ္… အခုကြၽန္ေတာ္တို႔ object datasource နဲ႔ သံုးတဲ႔ပံုစံကို အရင္စျပီး သံုးျပပါ့မယ္။ ပထမဆံုး window project တစ္ခုေဆာက္ပါမယ္။ VS2008 => File => New => Project => Window Form Application. Object datasource ကိုသံုးမယ္ဆိုရင္ ပထမဆံုးလိုအပ္တာက dataset ပါ။ database table ထဲက data ေတြကို memory ေပၚမွာ သိမ္းထားဖို႔အတြက္ ကြၽန္ေတာ္တို႔ dataset ကိုသံုးရပါမယ္။ အိုေက project menu ေအာက္က Add new item menuitem ကို ႏွိပ္လိုက္ပါ။ ဒါဆို item ေရြးဖို႔ window ေပၚလာမယ္၊ အဲ့ဒီမွာ dataset ဆိုတာကိုေရြး CategoryDataSet လို႔ နာမည္ေပးျပီး Add လိုက္ပါ။ ဒါဆို CategoryDataSet.xsd ဆိုတဲ႔ dataset တစ္ခုကြၽန္ေတာ္တို႔ ရပါျပီ။ database နဲ႔ ခ်ိတ္ဆက္မယ့္ dataset တစ္ခုမွာ ပံုမွာျပထားတဲ႔အတိုင္း DataTable နဲ႔ TableAdapter ဆိုျပီး အပိုင္း ၂ ပိုင္းပါေလ့ရွိပါတယ္။ DataTable ကေတာ့ memory ေပၚမွာ data ေတြသိမ္းေပးျပီး၊ Tableadapter ရဲ႕တာ၀န္ကေတာ့ အဲ့ဒီ table ထဲကို database ကေန data အသြင္းအထုတ္ကို ေဆာင္ရြက္ေပးပါတယ္။ ဒီလိုေဆာင္ရြက္ဖို႔အတြက္ Query statement ေတြကြၽန္ေတာ္တို႔ ေဆာက္ေပးရမွာပါ။ ကဲ TableAdapter စေဆာက္ရေအာင္၊ ToolBox ထဲကေန tableadapter ကို double click လုပ္ျပီးေရြးလိုက္ပါ။ TableAdapter ေဆာက္တဲ႔ အခါမွာ ပထမဆံုး database နဲ႔ connection ယူရပါတယ္။ လက္ရွိ project ထဲမွာ connection ယူျပီးသားရွိရင္ combobox ထဲမွာ ေရြးရျပီး၊ မရွိေသးရင္ေတာ့ new connection လုပ္ရပါမယ္။
1
New connection wizard မွာ ကြၽန္ေတာ္တို႔ သံုးခ်င္တဲ႔ database အမ်ိဳးအစားေရြးလို႔ရပါတယ္။ Microsoft Access သံုးမလား၊ Microsoft SQL Server ပဲသံုးမွာလား၊ Oracle Database ပဲ ခ်ိတ္ခ်င္လားေရြးလို႔ရပါတယ္။ ကြၽန္ေတာ္တို႔ Microsoft SQL Server ကိုပဲ ေရြးျပီး continue လုိက္ပါမယ္။
newconnection1
Add Connection wizard က Server Name ေနရာမွာ ကြၽန္ေတာ္တို႔ database ရွိေနတဲ႔ computer name ကိုထည့္ေပးရပါမယ္။ ကိုယ့္စက္ကို ခ်ိတ္မယ္ဆိုရင္ (.) ထည့္ေပးလည္းရပါတယ္။ ျပီးရင္ database login username နဲ႔ password ထည့္ေပးရပါမယ္။ မရွိဘူးဆိုရင္ေတာ့ Window Authentication ကိုေရြးခဲ႔ပါ။ ေနာက္ဆံုးတဆင့္ကေတာ့ database name combo ထဲမွာ mySaleDB ကိုေရြးေပးျပီး OK လိုက္ပါ။
3
အခု dataconnection combo ေလးမွာ ကြၽန္ေတာ္တို႔ ေရြးခဲ႔တဲ႔ connection ေလးေတြ႔ေနရပါျပီ။ အဲ့ဒီ connection မွာ password တခါတည္းထည့္မလား မထည့္ဘူးလား ေရြးလို႔ရပါတယ္။ ကြၽန္ေတာ္ကေတာ့ တခါတည္းပဲ ထည့္ထားလိုက္ပါတယ္။ ျပီးရင္ Next လိုက္ပါဦး။
4
အခုေဆာက္ခဲ႔တဲ႔ connection ကိုသိမ္းထားမလား လာေမးပါတယ္။ သိမ္းထားလိုက္ပါ။ ဒါဆိုရင္ေတာ့ connection ယူတဲ႔ အပိုင္းျပီးပါျပီ။ connection ရသြားျပီးေတာ့ Query ဆက္ေရးရပါဦးမယ္။ ပထမဦးဆံုး SQL Statement သံုးမလား၊ Store Procedure သံုးမလား ေရြးခိုင္းတာပါ။ SQL Statement ပဲ ေရြးျပီး Next လိုက္ပါ။
5
ဒါဆိုရင္ Query ေရးဖို႔ ေနရာေရာက္ပါျပီ။ ကြၽန္ေတာ္က Category table ထဲက record အားလံုး ထုတ္ျပဖို႔အတြက္ “SELECT * FROM Category” လို႔ေရးလိုက္ပါတယ္။ query ကို ကိုယ္တိုင္မေရးပဲ design ကိုပဲ ေဆာက္ခိုင္းခ်င္တယ္ဆိုရင္ Query Builder button ကိုႏွိပ္ျပီး ေဆာက္လို႔ ရပါတယ္။ ကဲ ဆက္ျပီး Next လိုက္ပါဦး။
6
ေနာက္တစ္ဆင့္မွာေတာ့ ကြၽန္ေတာ္တို႔ေရးခဲ႔တဲ႔ query ကို program ထဲမွာ ျပန္ေခၚဖို႔အတြက္ function name ေပးရတာပါ။ function ၂ ခုေဆာက္ေပးပါတယ္။ Fill နဲ႔ Get ပါ။ dataset စေဆာက္တဲ႔ ပထမဆံုး query အတြက္ နာမည္မေျပာင္းပါနဲ႔ default အတိုင္း ပဲ ထားျပီး next လိုက္ပါဦး။
7
ေနာက္ဆံုးမွာ ကြၽန္ေတာ္တို႔ရဲ႕ CategoryDataSet ၾကီးေအာင္ျမင္စြာ တည္ေဆာက္ျပီးစီးသြားပါျပီ။ compiler ေဆာက္ေပးသြားတဲ႔ result ကိုၾကည့္လိုက္ပါဦး။ ကြၽန္ေတာ္တို႔က Select query တစ္ခုထဲ ေဆာက္ခဲ႔ေပမယ့္ insert, update, delete အားလံုးကို compiler က auto ေဆာက္ေပးသြားပါတယ္။
8
Finish လိုက္ရင္ categoryDataSet ထဲမွာ Category Table ေလးရယ္၊ table ထဲမွာ ပါတဲ႔ column name ေတြရယ္၊ CategoryTableAdapter ရယ္၊ Fill နဲ႔ GetDate Function ေတြရယ္ကို ေတြ႔ရမွာပါ။ အိုေက… နားလည္မယ္ထင္ပါတယ္။ ဒါဆိုရင္ ကြၽန္ေတာ္တို႔ Dataset ေတြ တည္ေဆာက္တက္ပါျပီ။ ေနာက္ေန႔မွ datagridview နဲ႔ ခ်ိတ္ပါ့မယ္။

4 Comments »

  1. hi brother i m so thank u for this…i waithing it…very thank:)and waiting your next lesson

    Comment by arkar — September 13, 2009 @ 9:16 PM

  2. I wonder how a program and database are connected.
    Now I know it’s just a piece of cake.
    Thank alot bro.
    If you get time can you explain how can I write stored procedures how it
    work.
    Thank again.

    Comment by kevin — September 14, 2009 @ 12:22 PM

  3. ကြၽန္ေတာ္အခ်ိန္ရရင္ရသလို ဆက္ျပီးေရးေပးသြားပါ့မယ္။
    အားေပးတာ ေက်းဇူးတင္ပါတယ္။

    Comment by sevenlamp — September 14, 2009 @ 1:32 PM

  4. You can go a long way!
    Thank you.

    Comment by Mg Thu — January 14, 2012 @ 4:19 PM


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: