DataGridView üzerindeki bazı işlemler olacak. Biraz açıklamak gerekirse, DataGridView’deki seçili olan satırı Form’un üzerindeki textBox’lara aktarıp veritabanında güncelleyeceğiz.

Önce bir Windows Form oluşturunuz. Form’a bir DataGridView, üç textBox ve 2 Buton ekleyelim.

Her zaman olduğu gibi Öğrenciler için oluşturduğum Data isimli Access veritabanını kullanıyorum. Form’un Load kısmına daha önceki yazılarımda da anlattığım şekilde veritabanındaki verileri DataGridView’de gösteriyorum.

using System.Data.OleDb;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        OleDbConnection bag = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Data.accdb");
        //BURASI VERİTABANI BAĞLANTISI
        DataTable tablo = new DataTable();  // tablo isiminde bir Datatable tanımladık.
        private void Form1_Load(object sender, EventArgs e)
        {
            tablo.Clear();
            OleDbDataAdapter adtr = new OleDbDataAdapter("Select * From Kayit", bag);
            adtr.Fill(tablo);
            dataGridView1.DataSource = tablo;
        }
    }
}

Şimdi sıra geldi Seçili Satırı Düzenle isimli butonumuzun kodlarını yazmaya. Butonun klik olayına aşağıdaki kodlarımızı yazıyoruz.

private void button3_Click(object sender, EventArgs e)
{
    textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
    textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
    textBox3.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
}

Burdaki kodlarımız anlamı şu şekildedir. DatagridView1 deki seçili olan satırın(CurrentRow) 0.hücredeki(Cells[0]) değerini string ifadeye çevirerek textBox1’e aktar.

Bu şekilde textBox1, textBox2 ve textBox3’e DataGridViewdeki verilerimizi aktarmış olduk. Projemizi F5 yaparak çalıştırıyoruz.

Butona tıklayınca seçili satırdaki verileri textBox’larımıza aktardı. Şimdi sırada Güncelle butonunun klik olayı ile DatagridView’deki seçtiğimiz satırın verilerini güncelleyeceğiz ve DataGridView’deki verilerimizi güncelleyerek listede güncellenmiş halini göstereceğiz.

Önce listele adında bir class oluşturuyorum.

private void listele()
{
    tablo.Clear();
    OleDbDataAdapter adtr = new OleDbDataAdapter("Select * From Kayit", bag);
    adtr.Fill(tablo);
    dataGridView1.DataSource = tablo;
}

Bu işlemle daha önce anlattığım gibi DataGridView’i yenilemiş olacağız.
Daha sonra Güncelle butonuna kodlarımızı yazmaya başlıyoruz. SQL ‘de Update sorgusu ile bu işlemi gerçekleştiriyoruz.

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text.Trim() != "" && textBox2.Text.Trim() != "" && textBox3.Text.Trim() != "")
    {
        bag.Open();
        OleDbCommand cmd = new OleDbCommand("UPDATE Kayit SET Adi='" + textBox2.Text + "',Notlar='" + textBox3.Text + "' WHERE ogrNo=@ogrenciNo", bag);
        cmd.Parameters.AddWithValue("@ogrenciNo", textBox1.Text);
        cmd.ExecuteNonQuery();
        MessageBox.Show("GÜNCELLENDİ !");
        textBox1.Text = "";
        textBox2.Text = "";
        textBox3.Text = "";
        listele();
    }
    else
    {
        MessageBox.Show("Boş alan bırakmayınız !");
    }
    bag.Close();
}    
}
}

Burada textBox’lara boş değer girilmesin ve boş bırakılmasın diye if else ile bir şarta bağladık. Böylece kullanıcı boş bırakırsa messagebox ile kullanıcıya boş alan bırakamazsınız diye uyarı verecek. Ardından SQL sorgumuzu yazdık. SQL’in Update komutu ile veritabanındaki verielri öğrenci numarasına göre güncelledik ve textBox’ları güncelleme işleminden sonra temizledik.

listele(); sınıfını çağırarak DataGridView’in yenilenmesini sağladık. Böylece DataGridView seçili satırı güncellemiş olduk. Sizde Debug işlemi ile deneyip sonucu görebilirsiniz.

Sizde şimdi buna benzer bir çalışma yaparak kendinizi deneyin ve sonucun ne olduğunu görün.