Sql server, C# and ADO.NET (Final part)

ဒီဆွေးနွေးချက်ကို လတ်စသတ်လိုက်ရအောင်… ဒီတစ်ခါ နောက်ဆုံး data တွေကို update နဲ ့ delete လုပ်ကြည့်ရအောင်… form ပေါ်မှာ update နဲ ့ delete အတွက် button အတွက် နေရာချပြီးတာနဲ ့ အောက်က code တွေ ထည့်ပြီး trace လိုက်ကြည့်ပါ.. လွယ်လွယ်ကူကူပါပဲ.. ဘယ်လိုအလုပ်လုပ်တယ်ဆိုတာတော့ မရေးတော့ပါဘူး.. အရင်ပို ့စ်တွေ ဖတ်ပြီးသားဆိုရင် နားလည်ပြီးသားနေမှာပါ..

Update button အတွက် code

private void btnUpdate_Click(object sender, EventArgs e)
{
da.UpdateCommand = new SqlCommand("Update SAMPLE set FIRSTNAME = @FIRSTNAME, LASTNAME = @LASTNAME Where ID = @ID", conn);
da.UpdateCommand.Parameters.Add("@FIRSTNAME", SqlDbType.VarChar).Value = txtFirstName.Text;
da.UpdateCommand.Parameters.Add("@LASTNAME", SqlDbType.VarChar).Value = txtLastName.Text;
da.UpdateCommand.Parameters.Add("@ID", SqlDbType.Int).Value = da.Tables[0].Rows[bindsource.Position][0];

conn.Open();
int x = da.UpdateCommand.ExecuteNonQuery();
conn.Close();

if (x>=1)
MessageBox.Show("Record(s) has been updated");
}

Delete Button အတွက် Code

private void btnDelete_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("Are you sure?\nThere is no undo once data is deleted.", "Confirm Message", MessageBoxButtons.YesNo);

if (result == DialogResult.Yes)
{
da.DeleteCommand = new SqlCommand("DELETE FROM SAMPLE Where ID = @ID", conn);
da.DeleteCommand.Parameters.Add("@ID", SqlDbType.Int).Value = ds.Tables[0].Rows[bindsource.Position][0];

conn.Open();
da.DeleteCommand.ExecuteNonQuery();
conn.Close();
}
else
{
MessageBox.Show("Delection Canceled.");
}
}

Sql Server, C# and ADO.NET(part 2)

ပြီးခဲ့တဲ့ part 1 မှာ Sql server ထဲကို data ထည့်သွင်းခြင်းကို ရှင်းပြခဲ့ပြီး ဖြစ်ပါတယ်… ဒီအပိုင်းမှာ အဲဒီ့ database ကို  form ပေါ်မှာ မြင်နိုင်အောင် DataGridView သုံးပြီးတော့ display လုပ်ပါမယ်.. ကဲ ကြည့်ရအောင်..

ကျနော်တို ့part 1 မှာတုန်းက Form ပေါ်မှာ Figure1_1 မှာ ပြထားသလို Sql Server ထဲကို data တွေ ထည့်သွင်းထားတယ် ဆိုပါစို ့..

အဲဒါကို Form ပေါ်မှာ display ဘယ်လိုလုပ်မလဲဆိုတာ ကြည့်ပါ… ပထမဆုံး Figure1_2 မှာ ပြထားတဲ့အတိုင်း Form ပေါ်မှာ Button အသစ်တစ်ခု ထပ်ထည့်လိုက်ပါအုံး..


Figure1_2

button’s property အနေနဲ ့ Name ကို btnDisplay နဲ ့ Text မှာ Display လို ့ပြင်ရေးလိုက်ပါ…
ပြီးရင် button ကို double click ပေးပြီး သူ ့အလုပ်လုပ်ပုံကို ရေးရအောင်..

SqlConnection conn = new SqlConnection(“Data Source=MRDREAM\\SQLEXPRESS;” +
“Initial Catalog=SQLSAMPLE; Integrated Security=SSPI”);
SqlDataAdapter da = new SqlDataAdapter();

ပထမဆုံး connection ချိတ်မယ်.. ပြီးရင် dataAdapter ကို create လုပ်မယ်.. part 1 က Add Record button အလုပ်လုပ်ပုံမှာ ရှင်းပြပြီးသားဖြစ်တဲ့အတွက် ထပ် မရှင်းတော့ပါဘူး..

DataSet ds = new DataSet();

ADO.NET မှာ data source ထဲက data တွေဟာ dataAdapter အကူအညီနဲ ့ DataSet ထဲကို ရောက်ပါတယ်။ dataSet ထဲက data တွေကိုမှ Form Controls တွေပေါ် data binding လုပ်လိုက်တာပါ..
ဒါကြောင့် အခု DataSet ကို create လုပ်လိုက်ပါတယ်..

da.SelectCommand = new SqlCommand(“SELECT * FROM SAMPLE”, conn);

part 1 မှာတုန်းက sql server ထဲက database ထဲကို data တွေ ထည့်သွင်းမှာဖြစ်တဲ့အတွက်
dataAdapter.InsertCommand ကို အသုံးပြုခဲ့တာ မှတ်မိမှာပါ.. အခုက database ထဲက ဟာကို Form Controls ပေါ် တင်မှာဖြစ်တဲ့အတွက် dataAdapter.SelectCommand နဲ ့ အသုံးပြုပါမယ်။
SELECT * FROM SAMPLE  မှာ SAMPLE က database ရဲ ့  Table name၊ * ဆိုတာ Table ထဲမှာ ရှိသမျှ data အားလုံး…

ds.Clear();

DataSet ကို clear လုပ်ပေးတယ်ဆိုတော့ ဘာအတွက်လဲ မေးစရာ ရှိပါတယ်.. သူ ့ကို clear ပေးမထားရင် data အသစ် တစ်ခု ထည့်လိုက်တာနဲ ့ အရင် data တွေပါ ပြန်ပြီး display ထပ်လုပ်ပါလိမ့််မယ်.. အဲလိုမဖြစ်ရအောင်လို ့ကာကွယ်ထားတာပါ.. မသိသေးသူများ ရှေ ့မှာ comment လေးပိတ်ပြီး run ကြည့်ပါ…

da.Fill(ds);

dataAdapter နဲ ့ DataSet ထဲကို data တွေ Fill ဖြည့်လိုက်တာပါ..

dataGridView1.DataSource = ds.Tables[0];

နောက်ဆုံး DataGridView ရဲ ့ DataSource ထဲကို DataSet ထဲက dataTables တွေကို ထည့်လိုက်ခြင်းအားဖြင့် Form ရဲ ့ DataGridView ပေါ်မှာ မြင်ရပါလိမ့်မယ်..

ခုရေးခဲ့တဲ့ Display button ရဲ ့ code ပါ။

private void btnDisplay_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(“Data Source=MRDREAM\\SQLEXPRESS;” +
“Initial Catalog=SQLSAMPLE; Integrated Security=SSPI”);
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();

da.SelectCommand = new SqlCommand(“SELECT * FROM SAMPLE”, conn);
ds.Clear();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}

Output


Figure1_3

ကျနော်တို ့ data အသစ်လေးတွေ ထပ်ထည့်ကြည့်မယ်.. Figure1_4 မှာ ကြည့်ပါ…


Figure1_4

ဆက်ရန် (part 3)

ok!
Thanks for reading!!
See u around, buddy!!!

Sql Server, C# and ADO.NET (part 1)

C# နဲ ့ sql server အသုံးပြုပြီးတော့
* database ထဲကုုိ data တွေ ဘယ်လိုပို ့မလဲ
* database ထဲက data တွေကို form ပေါ်မှာ ဘယ်လိုပြမလဲ
* database ထဲက data တွေကို ဘယ်လို update လုပ်မလဲ
* database ထဲက data တွေကို ဘယ်လို delete လုပ်မလဲ
* BindingSource ကို ဘာအတွက် အသုံးပြုမှာလဲ
အဲဒါတွေကို အပိုင်းလိုက် ခွဲပြီးတော့ ရှင်းပြပါမယ်။

Continue reading “Sql Server, C# and ADO.NET (part 1)”

100 days with Python(Day:1-Day:10)

Programming Language တစ်ခုကိုစတင်ပြီး လေ့လာတော့မယ်ဆိုတော့ စရတာက Hello World ပေါ့။ Python ကိုဘာလို. စပြီး စိတ်ဝင်စားသလဲဆိုတော့ စင်္ကာပူမှာနေတုန်းက အားရင် Internet မှာ MIT က Course ကြည်ဖြစ်ပါတယ်။ Python ကိုစပြီး သင်ပေးပါတယ် Lecturer များကလဲ တော်တော်ကောင်းပါတယ်။
Continue reading “100 days with Python(Day:1-Day:10)”

Basic Java အပိုင်း (၂)

Brief History of JAVA

၁၉၉၁ မှာ ( ၉၁ ဆိုတော့ ကျနောှ့ထက် တစ်နှစ်ကြီးတဲ့ အစ်ကိုကြီးပဲ Big Brother Java 😛 😛 ) James Gosling ဆိုတဲ့သူရဲ့ Oak အမည်ရတဲ့ Project ကနေ ထွက်ပောှလာပာတယ်.. C / C++ ရဲ့ Notation တွေကို အခြေခံပေမယ့် C/C++ ထက် ပိုပြီး ရှင်းလင်းလွယ်ကူအောင် လုပ်ဖို့ပာပဲ.. ပထမဆုံး Public ကို Implementation လုပ်တဲ့ Java 1.0 ဟာ 1995 မှာ ထွက်ပောှလာပာတယ်.. လူအကြား ရေပန်းစားလာတဲ့ အကြောင်းက “Write Once, Run Anywhere” ဆိုတဲ့ အချက်နဲ့ပာ ဆိုလိုချင်တာက Java ဟာ Platform Dependency မရှိပာဘူး.. Window ပောှမှာ ရေးထားတဲ့ Java codes တွေကို Unix ပောှမှာ run လို့ ရပာတယ်.. Unix ကို အခြေခံထားတဲ့ Linux, Mac မှာလည်း run လို့ ရပာတယ်.. ဒာ သူ့ရဲ့ အားသာချက်လို့ ပြောနိုင်ပာတယ်..

နောက်ပိုင်းမှာ large enterprises တွေအတွက် J2EE (Java 2 Platform, Enterprise Edition), Mobile အတွက်J2ME (Java 2 Platform, Micro Edition) ဆိုပြီး ထွက်ပောှလာပာတယ်..
Continue reading “Basic Java အပိုင်း (၂)”

Basic Java အပိုင်း (၁)

ပထမဦးစွာ ပြောချင်သည်မှာ ကျနောှ Java Developer မဟုတ်ပာ.. 🙂

ကျောင်းတွင် သင်သော စုတ်ပြတ်သတ် လက်ရေးများဖြင့် Notes လိုက်မှတ်ထားသည်များကို ဆီလျောှအောင် ပြန်လည် ရေးသားပာသည်.. မသင့်တောှသည်များကို Admin ကြီး saturngod မှ ပြင်ဆင်ပေလိမ့်မည် 😀

OOP အကြောင်းကို ကိုလူပျိုကြီးရေးထားတာလည်းရှိပာတယ်..

အရင်ဆုံး Java အကြောင်း မပြောခင်မယ် Object-Oriented-Programming အကြောင်း အရင် ပြောဖို့လိုမယ်ထင်ပာတယ်..

OOP ဆိုတာ Object ဆိုတဲ့အရာများကို အသုံးပြုပြီးတော့ Apps တွေ Program တွေ Design လုပ်ထားတဲ့ Programming Standard တစ်ခု ဖြစ်ပာသည်.. OOP မှာ နည်းလမ်းတွေ အများအကြီးရှိပာတယ်.. အဲထဲက အဓိကဟာတွေကတော့

Inheritance

Polymorphism

Encapsulation

တို့ဖြစ်ပာတယ်.. အောက်ဘက်မှာ အသေးစိတ် ပြန်ရှင်းပာ့မယ်

အရင်ဆုံး Object ဆိုတာကြီးကို Define လုပ်ကြည့်တာပော့

Object ဆိုတာ Subject မဟုတ်တာလို့ ပြောမှာလားဆိုတော့ မဟုတ်ပာဘူး 😛

An object is a thing that you can see, hold, or touch လို့ အရှင်းဆုံး ပြောလို့ရပာတယ်.. ကျနောှတို့ ပာတ်ဝတ်ကျင်းမှာ ကိုင်တွယ်နိုင်တဲ့အရာတွေ၊ မြင်နိုင်တဲ့အရာတွေ ၊ ထိတွေ့နိုင်တဲ့အရာတွေ အားလုံးဟာ Object ပာ..
Continue reading “Basic Java အပိုင်း (၁)”

C++

C++ program မရေးမီ သူ့ကို ဘယ်လို ပုံစံနဲ့ အလုပ်လုပ်သွားတယ်ဆိုတာကို အရင်ကြည့်ရအောင်။

[Source code] —- compile—>[Object code] —-link—->[Executable Code]

(eg mypr.cpp) —-compile—->(eg mypr.obj) —-link—–> (eg mypr.exe)

Source code ဆိုတာ user ရေးထားတဲ့ C++ program (.cpp)ကို ပြောတာပါ။ အဲဒီ program ကို computer နားလည်တဲ့ format ဖြစ်အောင် translate လုပ်ပေးရတယ်။ compiler သည် translator program တစ်မျိုးဖြစ်ပါတယ်။ C++ source code ကို compile လုပ်လိုက်ရင် machine readable ဖြစ်တဲ့ object code (.obj) ကို generate လုပ်ပေးပါတယ်။ အဲဒီ object code ကို link လုပ်ပြီးမှသာ executable code (.exe) ထွက်လာတာပါ။ အဲဒီအခါမှ program ရဲ့ output ကို မြင်ရပါတယ်။
C++ Program ကို ရေး ရန်အတွက် Turbo C software အရင် Download လုပ်ရပါမယ်။ Continue reading “C++”

အသုံးချ Ruby

၁ အဖွင့်။
၁.၁ နိဒါန်း။
ယခု Rubyသင်ခန်းစာများကို Mystery Zillion Education Site(http://www.edu.mysteryzillion.org) အတွက် ရည်ရွယ် ရေးသားပါသည်။သင်ခန်းစာ စီစဉ်ရေးသားသော်လည်း၊ ကျွန်ုပ်ကိုယ်တိုင် Ruby အပါအဝင် အခြားprogramming language များကို တစ်ဖက်ကမ်းခတ် တတ်ကျွမ်းသူမဟုတ်ပါ။ကိုယ်သိသလောက်၊ မှတ်သလောက်၊ တတ်သလောက် နှင့် ကျမ်းကြီး ကျမ်းငယ်အသွယ်သွယ်ကို ညှိနှိုင်း ခြင့်ချိန် ရေးသားပါသည်။ ထို့ကြောင့် အမှားပါရင်ခွင့်လွှတ်ဖို့ စကား ပလ္လင် ခံရပါသည်။ ကျွန်ုပ်သည် စာရေးဆရာ တစ်ယောက်လည်းမဟုတ်သဖြင့် ရေးသားပုံ ည့ံဖျင်းလျှင်လည်း ပွင့်လင်းစွာဝေဖန် အကြံပေးနိုင်ပါသည်။ သင်ခန်းစာပါ အကြောင်းအရာများ၊ အရေးအသား များကို၊ စာရှုသူများ၏တုံ့ပြန်မှုပေါ်မူတည်၍၊ ဆက်တိုက် ပြုပြင်၊ မွမ်းမံ ရေးသား သွားမည်ဖြစ်ပါ၍အဖက်ဖက် မှ ကောင်းမွန်စေရန်၊ စာရှုသူများ၏ ကိုယ်တိုင် ပါ၀င်၊ ဝေဖန်အကြံပေးမှု များ အထူးလိုအပ်ပါသည်။ Continue reading “အသုံးချ Ruby”