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

လက်ရှိမှာ form ပေါ်မှာ record အသစ်တွေ ထည့်နိုင်ပြီ။ dataSet ထဲက dataTable ကို ဆွဲထုတ်ပြနိုင်ပြီ။ ဒီတစ်ခါ ဘာလုပ်မလဲဆိုတော့ data တွေကို navigate လုပ်ကြည့်ရအောင်။ ဒီအတွက် BindingSource object ကို အသုံးပြုရပါမယ်။

BindingSource bindsource = new BindingSource();

BindingSource object ကို create လုပ်လိုက်ပြီ.. data တွေကို DataGridView ပေါ်မှာ display လုပ်တဲ့ အလုပ်ကို Display button က ပြုလုပ်ပါတယ်.. ဒီအတွက် data တွေကို navigate လုပ်တဲ့အလုပ်ကို Display button ထဲမှာ ၀င်ရေးရပါမယ်..

bindsource.DataSource = ds.Tables[0];
txtFirstName.DataBindings.Add(new Binding(“Text”, bindsource, “FirstName”));
txtLastName.DataBindings.Add(new Binding(“Text”, bindsource, “LastName”));

DataSet ထဲက data တွေကို bindingsource ရဲ ့ datasource ထဲ ထည့်လိုက်ပါတယ်.. ပြီးရင် FirstName တွေကို data binding လုပ်ပါမယ်.. ဘယ်ထဲကိုလဲ .. txtFirstName လို ့အမည်ပေးထားတဲ့ textBox ထဲကို.. ဟုတ်ပြီ.. LastName ကိုလဲ ဒီအတိုင်းပါပဲ.. ပြီးရင် data တွေကို navigate လုပ်ဖို ့အတွက် form ပေါ်မှာ နောက်ထပ် button ၄ ခု ထပ်ထည့်ပါမယ်…

Buttons’ properties

BindingSource အသုံးပြုကြတဲ့နေရာတွေတော့ အများကြီးပါပဲ.. ဒါပေမဲ့ ဒီအပိုင်းမှာတော့ သိပ်ပြောစရာ မရှိပါဘူး.. အောက်က code နဲ ့ output ကို ကြည့်လိုက်ရင် နားလည်သွားပါလိမ့်မယ်.. ဒီတစ်ခါ Add Record နဲ ့ Display button မှာ ရေးပြီးသား code တွေပါ တစ်ခါတည်း ပေါင်းပြထားပါတယ်..

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace ADO.NET_AND_SQL
{
public partial class Form1 : Form
{
SqlConnection conn = new SqlConnection(“Data Source=MRDREAM\\SQLEXPRESS;” +
“Initial Catalog=SQLSAMPLE; Integrated Security=SSPI”);
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
BindingSource bindsource = new BindingSource();

public Form1()
{
InitializeComponent();
}

private void btnAddRecord_Click(object sender, EventArgs e)
{
da.InsertCommand = new SqlCommand(“Insert Into SAMPLE values(@FirstName, @LastName)”, conn);
da.InsertCommand.Parameters.Add(“@FirstName”, SqlDbType.VarChar).Value = txtFirstName.Text;
da.InsertCommand.Parameters.Add(“@LastName”, SqlDbType.VarChar).Value = txtLastName.Text;

conn.Open();
da.InsertCommand.ExecuteNonQuery();
conn.Close();
}

private void btnDisplay_Click(object sender, EventArgs e)
{
da.SelectCommand = new SqlCommand(“SELECT * FROM SAMPLE”, conn);
ds.Clear();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

bindsource.DataSource = ds.Tables[0];
txtFirstName.DataBindings.Add(new Binding(“Text”, bindsource, “FirstName”));
txtLastName.DataBindings.Add(new Binding(“Text”, bindsource, “LastName”));
}

private void btnFirst_Click(object sender, EventArgs e)
{
bindsource.MoveFirst();
dgUpdate();
}

private void btnPrevious_Click(object sender, EventArgs e)
{
bindsource.MovePrevious();
dgUpdate();
}

private void btnNext_Click(object sender, EventArgs e)
{
bindsource.MoveNext();
dgUpdate();
}

private void btnLast_Click(object sender, EventArgs e)
{
bindsource.MoveLast();
dgUpdate();
}

public void dgUpdate()
{
dataGridView1.ClearSelection();
dataGridView1.Rows[bindsource.Position].Selected = true;
}
}
}

bindsource.MovePrevious();
dgUpdate();

ဒါလေးပါပဲ… BindingSource class ထဲမှာ ရှိတဲ့  MovePrevious, MoveLast, MoveFirst, MoveNext ဆိုတဲ့ method တွေ အသင့်ယူသုံးလိုက်တာပါပဲ.. ဒါပေမဲ့သူက Textbox ထဲမှာပဲ navigate လုပ်ပါတယ်. ဒါကြောင့် dgUpdate () function ဆောက်ပြီး datagridview မှာ navigate လုပ်အောင် ရေးထားတာပါ..

Output

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

One Reply to “Sql Server, C# and ADO.NET (part 3)”

Leave a Reply

Your email address will not be published. Required fields are marked *