our notes for our youngers

October 23, 2009

Question & Answer 1

Filed under: ADO in Window Application, Question&Answer — Tags: , , , , , — sevenlamp @ 4:06 PM

ကြၽန္ေတာ္ သူငယ္ခ်င္းတို႔ရဲ႕ comment ထဲမွာ ေမးတဲ႔ ေမးခြန္းေလးေတြကို အလွ်င္းသင့္သလို ျပန္ေျဖနိုင္ေအာင္ဆိုျပီး Question and Answer ဆိုတဲ႔ အပို္င္းေလး ထည့္ဖို႔ စဥ္းစားမိတယ္။ ဒါနဲ႔ ဒီ category ေလးကို စလိုက္ပါတယ္။ သူငယ္ခ်င္းတို႔ C# နဲ႔ ပတ္သက္ျပီး သိခ်င္တာေလးေတြ ေမးနိုင္ပါတယ္။ ကြၽန္ေတာ္ သိသေလာက္ ေျဖေပးပါ့မယ္။ အဲ မသိရင္လည္း ၾကိဳးစား ရွာဖတ္ျပီး ေျဖေပးနိုင္ေအာင္ ၾကိဳးစားပါ့မယ္။

အရင္ဆံုး Ko Thet ေမးတဲ႔ ေမးခြန္းေလးနဲ႔ စလိုက္ရေအာင္….

Q : How to populate data in text box by using combo box.Says, Chose ID in Combo Box, then Name, Add, City, Contact no and etc will be shown in respective text box control. If you have time, please show me.

Comment by Ko Thet — October 22, 2009

A : ဒီေမးခြန္းေလးအတြက္ ကြၽန္ေတာ္ example program ေလး တစ္ခု ေရးျပပါမယ္။ အရင္ဆံုး ေအာက္မွာ ျပထားတဲ႔ ပံု(၁) အတိုင္း database ထဲမွာ table ေလး တစ္ခုေဆာက္လိုက္ပါတယ္။

Database name => Course_DB

Table name => EmployeeTable

pic_1

pic_1

Note: EmployeeID ကို ကြၽန္ေတာ္တို႔ ထည့္စရာ မလိုပဲ database မွာ auto တိုးသြားခ်င္လို႔ အဲ့ဒီ column properties မွာ (Is Identity) ကို Yes လို႔ ေပးလိုက္ပါတယ္။ Identity Seed (1) ကေနစျပီး Identity Increment (1) စီ တိုးသြားမယ္လို႔ ေျပာတာပါ။

ျပီးရင္ အဲ့ဒီ EmployeeTable ထဲကို Sample Data နည္းနည္း ျဖည့္ေပးထားလိုက္ပါမယ္။ ပံု(၂) နဲ႔ ပံု(၃)မွာ ၾကည့္ပါ။

pic_2

pic_2

pic_3

pic_3

database ေဆာက္ျပီးေတာ့ အခုကြၽန္ေတာ္တို႔ program ဘက္အပိုင္းကို ဆက္ပါမယ္။ New Window Application တစ္ခုယူျပီး ပံု(၄) အတိုင္း design ခ်လိုက္ပါတယ္။

pic_4

pic_4

Database ထဲက data ကို window form မွာ ခ်ိတ္ျပဖို႔အတြက္ ကြၽန္ေတာ္ အခု ပံု(၅) မွာျပထားသလို အဆင့္ဆင့္ လုပ္သြားလိုက္ပါ။

pic_5

pic_5

pic_6

pic_6

Data Source Configuration Wizard မွာ ‘DataBase’ ကိုေရြးျပီး Next ထပ္ႏွိပ္လိုက္ပါ။ ဒါဆိုရင္ ပံု(၇) မွာ ျပထားသလို database connection ေရြးခိုင္းတဲ႔ ေနရာကိုေရာက္ပါမယ္။ ကြၽန္ေတာ္တို႔က အခုမွ connection အသစ္ေဆာက္မွာ ျဖစ္လို႔ New Connection button ကိုႏွိပ္လိုက္ပါ။ Add connection wizard ေရာက္ရင္ ပံု(ဂ) မွာ ျပထားသလိုမ်ိဳး connection တစ္ခု ေဆာက္လိုက္ပါ။

pic_7

pic_7

pic_8

pic_8

pic_9

pic_9

ပံု(၉) မွာ ျပထားတဲ႔ အတိုင္း ကြၽန္ေတာ္တို႔ database connection တစ္ခုရပါျပီ။ အဲ့ဒီ connection string ထဲမွာ password ထည့္သိမ္းထားမယ္ဆိုရင္ ဒုတိယ radio button ေလးကို ေရြးေပးရပါမယ္။

pic_10

pic_10

ေနာက္တစ္ဆင့္မွာ connection setting ေလးကို သိမ္းမလားလို႔ ေမးပါတယ္။ အိုေက သိမ္းထားလိုက္ပါ… နာမည္ကိုလည္း မေျပာင္းတာေကာင္းပါတယ္။

pic_11

pic_11

အခုကြၽန္ေတာ္တို႔ combobox ကေနတဆင့္ dataset ေဆာက္တဲ႔ အဆင္ျပီးသြားပါျပီ။ အခု ေျပာသလိုမေဆာက္ခ်င္ဘူး ဒါမွမဟုတ္လည္း ကြၽန္ေတာ္တို႔ form ထဲမွာ combobox မပါဘူးဆိုရင္လည္း dataset ၾကီးပဲ ဒီတိုင္း ယူျပီး ေဆာက္လို႔လည္း ရပါတယ္။ (Project Menu -> Add New Items -> DataSet )

pic_12

pic_12

Code file ထဲမွာလည္း Form_Load event ကို auto ေဆာက္ေပးသြားပါလိမ့္မယ္။

private void Form1_Load(object sender, EventArgs e)
{
      this.employeeTableTableAdapter.Fill(this.course_DBDataSet.EmployeeTable);
}

Database ထဲက data ေတြကို ကြၽန္ေတာ္တို႔ program ရဲ႕ memory ေပၚမွာ ယူျပီး သိမ္းေပးထားတဲ႔ အလုပ္ကို DataSet က လုပ္ေပးပါတယ္။ အဲ့ဒီ dataset ထဲကို data ေတြ ပို႔ေဆာင္ေပးတဲ႔ အလုပ္ကိုေတာ့ tableadapter က တာ၀န္ယူပါတယ္။ Form Load event ထဲမွာ ေရးေပးသြားတဲ႔ အလုပ္က အဲ့ဒီ data fill လုပ္ေပးတဲ႔ အလုပ္ပါ။ DataSet ထဲက data ေတြကို UI Controls ေတြမွာ ျပဖို႔ အတြက္ကိုေတာ့ BindingSource ကိုသံုးရပါတယ္။

pic_13

pic_13

အခု program ေလးကို အခုေန run လိုက္ရင္ combobox ထဲမွာ employee no ေတြကိုေတြ႔ေနရမွာပါ။ ဒါေပမယ့္ textbox ေတြမွာေတာ့ ေပၚမွာ မဟုတ္ေသးပါဘူး။ ကြၽန္ေတာ္တို႔ textbox ေတြနဲ႔ မခ်ိတ္ေပးရေသးဘူးေလ။ အိုေက အခု textbox ေတြနဲ႔ bindingsource နဲ႔ ခ်ိတ္ေပးပါ့မယ္။

pic_14

pic_14

Textbox နဲ႔ databind ဖို႔အတြက္ textbox ရဲ႕ properties window ကိုသြားလိုက္ပါ။ အေပၚဆံုးနားမွာ (DataBindings) ဆိုတဲ႔ property ေလးကို ဖြင့္လိုက္ျပီး၊ Text property ကိုႏွိပ္လိုက္ပါ။ အဲ့ဒီမွာ ကြၽန္ေတာ္တို႔ form မွာ ရွိေနတဲ႔ employeeTableBindingSource ကိုေတြရပါမယ္။ အဲ့ဒီ bindingsource ထဲကေန ကြၽန္ေတာ္တို႔ textbox မွာ ျပခ်င္တဲ႔ column name ကိုေရြးေပးလိုက္ရံုပါပဲ။ ကဲ… က်န္တဲ႔ textbox ေတြအားလံုးမွာလည္း ဒီတိုင္းပဲ လိုက္လုပ္လိုက္ပါ။ အခုဆိုရင္ေတာ့ Ko Thet လိုခ်င္တဲ႔ Program ပံုစံေလး ရျပီထင္ပါတယ္။

September 16, 2009

ADO.NET in C# (part 3)

Filed under: ADO in Window Application — Tags: , , , , — sevenlamp @ 10:21 AM

ကဲ ဒီေန႔ေတာ့ ကြၽန္ေတာ္တို႔ မေန႔က program ေလးကိုပဲ ပိုျပီးလြယ္တဲ႔ နည္းေလးသံုးျပီး ျပန္ေရးလိုက္ရေအာင္ဗ်ာ။ dataset ကို အရင္မေဆာက္ပဲ datagrid ကေနတဆင့္ ေဆာက္မွာျဖစ္ပါတယ္။
1
ပံု(၁)
ပံု(၁)မွာ ျပထားတဲ႔ အတိုင္း အဆင့္ဆင့္သြားလိုက္ပါ။ ကြၽန္ေတာ္တို႔ dataset ၾကိဳမေဆာက္ထားတဲ႔အတြက္ choose data source ထဲမွာ ဘာမွ ေတြ႔ရမွာ မဟုတ္ပါဘူး။ ကဲ Add Project Data Source လင့္ေလးကို click လိုက္ပါ။ 2
ပံု(၂)
ဒါဆိုရင္ Data Source အမ်ိဳးအစားေရြးခိုင္းတဲ႔ window ေလးေပၚလာပါ့မယ္။ ကြၽန္ေတာ္က databaseထဲကေန ယူခ်င္တာျဖစ္လို႔ Database ကိုေရြးျပီး Next ပါမယ္။3
ပံု(၃)
ဒါဆိုရင္ connection ေရြးခိုင္းတဲ႔ ေနရာကိုေရာက္ပါျပီ။ အရင္က ခ်ိတ္ဖူးတဲ႔ connection ေတြရွိေနရင္ ပံု(၃)မွာ ျပထားသလို combobox ေလးထဲကေနေရြးေပးလိုက္ပါ။ မရွိဘူးဆိုရင္ေတာ့ ဟိုေန႔က ေျပာခဲ႔သလို New Connection လုပ္ရမွာပါ။ Next ထပ္ႏွိပ္ပါဦး၊ ဒါဆို connection ကိုသိမ္းမလား ေမးလိမ့္မယ္။ သိမ္းမယ္ေျပာျပီး Next ထပ္ႏွိပ္ပါ။4
ပံု(၄)
Database object ေရြးခိုင္းတဲ႔ ေနရာေရာက္ရင္ Tables ေအာက္က Category Table ကိုေရြးရပါမယ္။ DataSet name ေနရာမွာ CategoryDataSet လို႔ ေျပာင္းခ်င္ရင္ ေျပာင္းလို႔ ရပါတယ္။ ဒီတိုင္းထားလည္း ျပႆနာမရွိပါဘူး။ ကဲ Finished လုိက္ပါ။ ဒါဆိုရင္ေတာ့ ကြၽန္ေတာ္တို႔ datagrid နဲ႔ database ခ်ိတ္ဆက္တဲ႔ လုပ္ငန္းစဥ္ ျပီးဆံုးပါျပီ။ dataSet ကိုလည္း ေဆာက္ေပးသြားမွာပါ။ form load event မွာလည္း data fill လုပ္ေပးသြားပါလိမ့္မယ္။ အခု ကြၽန္ေတာ္တို႔က data update လုပ္ဖို႔ code ၂ ေၾကာင္းပဲ ေရးေပးစရာ လိုအပ္ပါေတာ့တယ္။ ကဲ… ဘယ္လိုလဲ… 5
ပံု(၅)

private void CategoryList_Load(object sender, EventArgs e)
{
   this.categoryTableAdapter.Fill(this.mySaleDBDataSet.Category);
}
private void button1_Click(object sender, EventArgs e)
{
   categoryBindingSource.EndEdit();
   this.categoryTableAdapter.Update(mySaleDBDataSet.Category);
}

September 15, 2009

ADO.NET in C# (part 2)

Filed under: ADO in Window Application — Tags: , , , , — sevenlamp @ 9:42 AM

ကဲ မေန႔က ကြၽန္ေတာ္တို႔ categoryDataSet ေဆာက္ခဲ႔ျပီးျပီဆိုေတာ့ အခုကြၽန္ေတာ္တို႔ datagrid မွာ ျပဖို႔ လုပ္ရေအာင္။ အရင္ဆံုး window form တစ္ခုယူလိုက္ပါ၊ နာမည္ကိုေတာ့ CategoryList လို႔ ေပးလိုက္ပါ။ အဲ့ဒီ form ထဲကို ပံုမွာ ျပထားတဲ႔ အတိုင္း label တစ္ခု၊ button တစ္ခုနဲ႔ datagrid တစ္ခုထည့္လိုက္ပါဦး။ control ေတြမွာ ျပင္ရမယ့္ property setting ကိုလည္း ျပထားပါတယ္။
1ပံု (၁)

Datagrid ကို click ႏွိပ္လိုက္ရင္ ညာဖက္အေပၚေဒါင့္မွာ arrow icon ေလးတစ္ခုေတြ႔ရပါလိမ့္မယ္။ အဲ့ဒါေလးကို ႏွိပ္လိုက္ရင္ datasource ေရြးဖို႔ combobox ေလးကိုေတြ႔မွာပါ။ အဲ့ဒီ combobox ေလးကို ႏွိပ္ျပီး ဒီ form ေလးမွာ ရွိေနတဲ႔ datasource ေတြကိုေရြးလို႔ရပါတယ္။ အခုကြၽန္ေတာ္တို႔က datasource မထည့္ရေသးလို႔ ဘာမွ ေတြ႔ရမွာမဟုတ္ပါဘူး။ datasource တစ္ခု create လုပ္ဖို႔နည္းလမ္း ၂ခုရွိပါတယ္။ နည္းလမ္း (၁) က ေအာက္က ပံု (၂) မွာ ျပထားသလို combobox ထဲမွာ အဆင့္ဆင့္သြားျပီး ကြၽန္ေတာ္တို႔ ေဆာက္ထားတဲ႔ CategoryDataSet ထဲက category table ေလးကို ေရြးေပးလိုက္ပါ။ ဒါဆိုရင္ ပံု (၃) မွာ ျပထားသလို categoryBindingSource object, categoryDataSet object နဲ႔ categoryTableAdapter တို႔ကို ေဆာက္ေပးသြားပါလိမ့္မယ္။ datagrid မွာလည္း category table ထဲက column ေတြ ေပၚလာတာ ေတြ႔ရမွာပါ။ ဒါဆိုရင္ datagrid နဲ႔ dataset ခ်ိတ္တဲ႔ အပိုင္းျပီးသြားပါျပီ။ အခု ဒီ program ေလးကို run လိုက္ရင္ data ေတြေပၚလာျပီလား။ မေပၚဘူးေနာ္… ဘယ္ေပၚမလဲ category table ထဲမွာ data မွ မရွိတာကိုး :D
2

ပံု (၂)

3ပံု (၃)

ကဲ အခု ကြၽန္ေတာ္တို႔ dataset နဲ႔ ခ်ိတ္ဆက္မႈ ျပီးသြားျပီ ဆိုေတာ့။ data အသြင္းအထုတ္လုပ္လို႔ ရပါျပီ။ ဒီလိုလုပ္လို႔ ရဖို႔အတြက္ အရင္ဆံုး ပံု (၃)မွာ ျပထားသလို datagrid မွာ Enable Adding, Enable Editing နဲ႔ Enable Deleting တို႔ကို check လုပ္ေပးခဲ႔ရပါမယ္။ အခု ကြၽန္ေတာ္တို႔ လုပ္ရမွာက program ကို run လိုက္ျပီး category ေတြထည့္ရပါမယ္။ ဒီလိုထည့္တဲ႔ အခါမွာ categoryID ကို ထည့္ေပးစရာ မလိုပါဘူး။ primary key ျဖစ္တဲ႔ categoryID ကို autoincrement လုပ္ထားတဲ႔ အတြက္ ကြၽန္ေတာ္တို႔ data ျဖည့္ေပးစရာ မလိုပါဘူး။ save လုပ္ရင္ အလိုလိုထည့္ေပးသြားပါလိမ့္မယ္။ အခုကြၽန္ေတာ္တို႔ data ျဖည့္ျပီးလို႔ database ထဲကို သိမ္းေတာ့မယ္ဆိုရင္ update button ကိုႏွိပ္ပါ့မယ္။ ဒါဆို update button ရဲ႕ click event မွာ dataset ထဲက data ေတြကို database ထဲသြားသိမ္းဖို႔ အတြက္ code ေရးေပးရပါမယ္။ ကြၽန္ေတာ္တို႔ အခု datagrid ထဲမွာ ထည့္ေနတဲ႔ data ေတြက memory ေပၚက categoryDataSet ထဲမွာ ရွိေနပါတယ္။ အဲ့ဒီ data ေတြကို database ထဲေရာက္ဖို႔အတြက္ Adapter ကေနတဆင့္ Update function ကိုေခၚရမွာပါ။ မေခၚခင္အရင္ဆံုး datagrid နဲ႔ ခ်ိတ္ထားတဲ႔ datasource ကို ျပင္ေနတာ ျပီးပါျပီလို႔ ေျပာေပးရပါမယ္။ ဒီလိုမ်ိဳးပါ…

private void button1_Click(object sender, EventArgs e)
{
        this.categoryBindingSource.EndEdit();
      	this.categoryTableAdapter.Update(this.categoryDataSet.Category);
}

အခု ကြၽန္ေတာ္ေခၚလိုက္တဲ႔ update function က dataset ေဆာက္တုန္းက compiler က auto ေဆာက္ေပးသြားတဲ႔ function ျဖစ္ပါတယ္။
4ပံု (၄)
5ပံု (၅)

ပံု (၄) မွာ ျပထားတဲ႔ အတိုင္း ကြၽန္ေတာ္ category ၂ေၾကာင္းျဖည့္လိုက္ပါတယ္။ categoryID က -1 နဲ႔ -2 ဆိုျပီး temporary assign လုပ္ေပးသြားပါတယ္။ update button ကို ႏွိပ္ျပီး update လုပ္လိုက္ျပီးတဲ႔ အခ်ိန္မွာေတာ့ ပံု(၅) အတိုင္း ျဖစ္သြားမွာပါ။ categoryID က database ထဲကအတိုင္း refresh ျဖစ္သြားပါတယ္။ program ကို ပိတ္ျပီး ျပန္ဖြင့္တဲ႔ အခါမွာလည္း ဒီအတိုင္းပဲ ေပၚေနပါလိမ့္မယ္။ ဘာလို႔လဲဆိုေတာ့ form_load event မွာ ေရးထားတဲ႔ ဒီ code ေၾကာင့္ပါ။

private void CategoryList_Load(object sender, EventArgs e)
{
      this.categoryTableAdapter.Fill(this.categoryDataSet.Category);
}

ဒီ code ကို ကြၽန္ေတာ္တို႔ datagrid နဲ႔ dataset ထဲက table နဲ႔ ခ်ိတ္လိုက္တဲ႔ အခ်ိန္မွာ auto ေရးေပးသြားတာပါ။ dataset ထဲမွာ ရွိတဲ႔ categoryTableAdapter ထဲမွာ ကြၽန္ေတာ္တို႔ေရးခဲ႔တဲ႔ Fill function ကိုသံုးျပီး dataset ထဲက category table ထဲကို data ျဖည့္ေပးပါတယ္။ table ထဲမွာ dataရွိသြားတဲ႔ အတြက္ table နဲ႔ ခ်ိတ္ထားတဲ႔ datagridview မွာပါ data ေတြ ေပၚလာတာပါ။ အဲ့ဒီ formload event ထဲက data fill လုပ္တဲ႔ code ကို comment ပိတ္ျပီး ျပန္ run ရင္ data ေပၚမွာ မဟုတ္ေတာ့ပါဘူး။ အိုေက ဒီေလာက္ဆိုရင္ object datasource သံုးျပီး datagridview နဲ႔ data အသြင္းအထုတ္လုပ္တာ နားလည္ျပီထင္ပါတယ္။

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 နဲ႔ ခ်ိတ္ပါ့မယ္။

Theme: Silver is the New Black. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.