C# Access Veri Tabanına Kayıt Ekleme, Kayıt Silme, Kayıt Listeleme, Kayıt arama, Kayıt Güncelleme İşlemleri

Csharp Access Veritabanına Kayıt Ekleme Listeleme Silme Arama Güncelleme

Visual C# programı ile Microsoft Access veri tabanıyla kayıt kayıt işlemleri nasıl yapılır bu derste onu anlatacağız. Öncelikle hangi kayıt işlemlerini yapacağız onları yazalım.

-Kayıt Ekleme
-Kayıt Listeleme
-Kayıt Arama
-Kayıt Güncelleme
-Kayıt Silme

Öncelikle Microsoft Access 2007 programında ismi okul.accdb olan bir veritabanı oluşturuyoruz. Oluşturduğumuz okul veritabanını açıp içerisine ogrenci isimli bir tablo oluşturuyoruz. Tabloda bulunan alanlar ve alanların veri tipleri aşağıdaki resimde görüldüğü gibi olmalıdır. Oluşturduğumuz veri tabanı projemizin Debug klasörü içerisinde olmalıdır.

Daha sonra oluşturduğumuz tabloyu açıp içerisine 4-5 tane aşağıdaki resimde görüldüğü gibi kayıt giriyoruz. Bu kayıt girmemizin amacı programı çalıştırdığımızda düzgün çalışıp çalışmadığını kontrol etmek. Zaten program tam çalıştığında yine kayıt ekleyip yada silebileceğiz.

Bu arada projemizin Debug klasörüne Resimler isimli bir klasör oluşturup içerisine 10 tane jpg uzantılı resim kopyalıyoruz.

Artık projemizi oluşturabiliriz. İlk olarak projemizi tasarım ekranında aşağıdaki resimde görüldüğü gibi hazırlıyoruz.

Projemizde 5 tane button, 7 tane textBox, 1 tane dataGridView, 1 tane pictureBox, 8 tane label ve 1 tane openFileDialog nesnesi bulunmaktadır.

ilk olarak veritabanı bağlantısını aktif hale getirmek için using kütüphanelerinden veritabanı kütüphanesini çağırıyoruz.

using System.Data.OleDb; //Acces bağlantı dosyaları

Daha sonra veri tabanı bağlantılarını yapmak ve tablolardan kayıtları çekmek için kullanacağımız veritabanı değişkenlerini tanımlıyoruz.

//Veri Tabanı Değişkenlerini Tanımlama Bölümü
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=okul.accdb");
OleDbCommand komut = new OleDbCommand();
OleDbDataAdapter adtr = new OleDbDataAdapter();
DataSet ds = new DataSet();

Daha sonra dataGridView üzerinde kayıtları listeletmek için gereken fonksiyonu yazıyoruz. Bu fonksiyonu 1 kere yazdıktan sonra gereken her yerde sadece çağıracağız ve her seferinde yeniden yazmamıza gerek kalmayacak.

//DataGridWiev de kayıtları listeleme bölümü
        void listele()
        {
            baglanti.Open();
            OleDbDataAdapter adtr = new OleDbDataAdapter("Select * from ogrenci", baglanti);
            adtr.Fill(ds, "ogrenci");
            dataGridView1.DataSource = ds.Tables["ogrenci"];
            adtr.Dispose();
            baglanti.Close();
        }

Kayıtlarımızın ekranda görüntülenmesi için oluşturduğumuz listele() fonksiyonunu formun load olayında yazıyoruz. Yani form yüklendiğinde kayıtları çağırsın ve ekranda görünsün diye.

//DataGridWiev de kayıtları listeleme bölümü
        private void Form1_Load(object sender, EventArgs e)
        {
            listele();
        }

Daha sonra resim yükleme işlemine geçiyoruz. Bunun için Resim Ekle butonuna çift tıklayıp içerisine aşağıdaki kodu yazıyoruz.

        //Resim Seçme Bölümü
        private void button5_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.ImageLocation = openFileDialog1.FileName;
                oresim.Text = openFileDialog1.FileName;
            }
        }

Daha sonra kayıt ekleme butonuna çift tıklayıp içerisine aşağıdaki kayıt ekleme kodunu yazıyoruz. Burada tüm alanların dolu olup olmadığını kontrol ediyoruz eğer tüm alanlar resim alanı dahil dolu değilse zaten tüm alanları doldurunuz diye mesaj veriyor ve kayıt yapmıyor. Tüm alanları doldurduktan sonra kayıt işlemi gerçekleşiyor.

        //Kayıt Ekleme Bölümü
        private void button1_Click(object sender, EventArgs e)
        {
            oresim.Text = pictureBox1.ImageLocation;
            if (tbno.Text != "" && tbadi.Text != "" && tbsoyadi.Text != "" && tbtel.Text != "" && oresim.Text!= "")
            {
                komut.Connection = baglanti;
                komut.CommandText = "Insert Into ogrenci(ogr_no,ogr_ad,ogr_soyad,ogr_tel,resim) Values ('" + tbno.Text + "','" + tbadi.Text + "','" + tbsoyadi.Text + "','" + tbtel.Text + "','" + oresim.Text + "')";
                baglanti.Open();
                komut.ExecuteNonQuery();
                komut.Dispose();
                baglanti.Close();
                MessageBox.Show("Kayıt Tamamlandı!");
                ds.Clear();
                listele();
            }
            else
            {
                MessageBox.Show("Boş alan geçmeyiniz!");
            }
        }

Daha sonra kayıt silme işlemine geçiyoruz. Kayıt silme işlemini yapabilmek için Silinecek öğrencinin numarasını yanındaki textBox’a yazarak Öğrenci sil butonuna tıklıyoruz. Böylece yazılan öğrenci numarasına ait olan kayıt veritabanından dolayısıyla ekrandan silinmiş oluyor. Öğrenci Sil butonuna çift tıklayıp aşağıdaki kodu içine yazıyoruz. Silme işlemini onayladıktan sonra yapıyoruz.

        //Kayıt Silem Bölümü
        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult c;
            c = MessageBox.Show("Silmek istediğinizden emin misiniz?","Uyarı!",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
            if (c == DialogResult.Yes)
            {
                baglanti.Open();
                komut.Connection = baglanti;
                komut.CommandText = "Delete from ogrenci where ogr_no=" + textBox1.Text + "";
                komut.ExecuteNonQuery();
                komut.Dispose();
                baglanti.Close();
                ds.Clear();
                listele();
            }
        }

Daha sonra dataGridden tıklanan yada yön tuşlarıyla seçilen kaydı ekrandaki textBox’lara aktarmak için dataGridView nesnesinin Cell_Enter özelliğine aşağıdaki kodu yazıyoruz.

        //Kayıtları DataGridden Textboxlara yazdırma bölümü
        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            tbno.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            tbadi.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
            tbsoyadi.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
            tbtel.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
            pictureBox1.ImageLocation = dataGridView1.CurrentRow.Cells[4].Value.ToString();
            oresim.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
        }

Daha sonra kayıt arama işlemine geçiyoruz. Kayıt arama yaptırmak için Aranacak Öğrenci Numarasına öğrencinin numarasını yazıp Arama butonuna tıklıyoruz ve yazılan numaralı öğrenci hem ekranda hemde kutularda yazılmış oluyor. Bunun için Arama butonuna çift tıklayıp içerisine aşağıdaki kodu yazıyoruz.

        //Kayıt Arama Bölümü
        private void button4_Click(object sender, EventArgs e)
        {
            baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=okul.accdb");
            adtr = new OleDbDataAdapter("SElect *from ogrenci where ogr_no like '" + textBox2.Text + "%'", baglanti);
            ds = new DataSet();
            baglanti.Open();
            adtr.Fill(ds, "ogrenci");
            dataGridView1.DataSource = ds.Tables["ogrenci"];
            baglanti.Close();
        }

Daha sonra kayıt güncelleme işlemine geçiyoruz. Öğrenci numarasına göre kaydı kutulara çağırdıktan sonra kaydın alanları üzerinde istediğimiz değişikliği yaptıktan sonra Güncelle butonuna tıkladığımızda kayıt güncellenmiş oluyor. Bunu için Güncelle butonuna çift tıklayıp içerisine aşağıdaki kodu yazıyoruz.

        //Kayıt Güncelleme Bölümü
        private void button3_Click(object sender, EventArgs e)
        {
            komut = new OleDbCommand();
            baglanti.Open();
            komut.Connection = baglanti;
            komut.CommandText = "update ogrenci set ogr_ad='" + tbadi.Text + "', ogr_soyad='" + tbsoyadi.Text + "', ogr_tel='" + tbtel.Text + "', resim='" + oresim.Text + "' where ogr_no=" + tbno.Text + "";
            komut.ExecuteNonQuery();
            baglanti.Close();
            ds.Clear();
            listele();
        }

Tüm bu anlatılanları yaptıktan sonra projemizi çalıştırıyoruz. Herşey yolunda giderse aşağıdaki gibi bir görüntü elde diyoruz.

Son olarak Projemizin tüm kodlarını aşağıda yazıyorum.

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.OleDb; //Acces bağlantı dosyaları

namespace veritabanı_2
{
    public partial class Form1 : Form
    {
        //Veri Tabanı Değişkenlerini Tanımlama Bölümü
        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=okul.accdb");
        OleDbCommand komut = new OleDbCommand();
        OleDbDataAdapter adtr = new OleDbDataAdapter();
        DataSet ds = new DataSet();


        public Form1()
        {
            InitializeComponent();
        }

        //DataGridWiev de kayıtları listeleme bölümü
        void listele()
        {
            baglanti.Open();
            OleDbDataAdapter adtr = new OleDbDataAdapter("Select * from ogrenci", baglanti);
            adtr.Fill(ds, "ogrenci");
            dataGridView1.DataSource = ds.Tables["ogrenci"];
            adtr.Dispose();
            baglanti.Close();
        }

        //DataGridWiev de kayıtları listeleme bölümü
        private void Form1_Load(object sender, EventArgs e)
        {
            listele();
        }

        //Resim Seçme Bölümü
        private void button5_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.ImageLocation = openFileDialog1.FileName;
                oresim.Text = openFileDialog1.FileName;
            }
        }

        //Kayıt Ekleme Bölümü
        private void button1_Click(object sender, EventArgs e)
        {
            oresim.Text = pictureBox1.ImageLocation;
            if (tbno.Text != "" && tbadi.Text != "" && tbsoyadi.Text != "" && tbtel.Text != "" && oresim.Text!= "")
            {
                komut.Connection = baglanti;
                komut.CommandText = "Insert Into ogrenci(ogr_no,ogr_ad,ogr_soyad,ogr_tel,resim) Values ('" + tbno.Text + "','" + tbadi.Text + "','" + tbsoyadi.Text + "','" + tbtel.Text + "','" + oresim.Text + "')";
                baglanti.Open();
                komut.ExecuteNonQuery();
                komut.Dispose();
                baglanti.Close();
                MessageBox.Show("Kayıt Tamamlandı!");
                ds.Clear();
                listele();
            }
            else
            {
                MessageBox.Show("Boş alan geçmeyiniz!");
            }
        }

        //Kayıt Silem Bölümü
        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult c;
            c = MessageBox.Show("Silmek istediğinizden emin misiniz?","Uyarı!",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
            if (c == DialogResult.Yes)
            {
                baglanti.Open();
                komut.Connection = baglanti;
                komut.CommandText = "Delete from ogrenci where ogr_no=" + textBox1.Text + "";
                komut.ExecuteNonQuery();
                komut.Dispose();
                baglanti.Close();
                ds.Clear();
                listele();
            }
        }

        //Kayıtları DataGridden Textboxlara yazdırma bölümü
        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            tbno.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            tbadi.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
            tbsoyadi.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
            tbtel.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
            pictureBox1.ImageLocation = dataGridView1.CurrentRow.Cells[4].Value.ToString();
            oresim.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
        }

        //Kayıt Arama Bölümü
        private void button4_Click(object sender, EventArgs e)
        {
            baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=okul.accdb");
            adtr = new OleDbDataAdapter("SElect *from ogrenci where ogr_no like '" + textBox2.Text + "%'", baglanti);
            ds = new DataSet();
            baglanti.Open();
            adtr.Fill(ds, "ogrenci");
            dataGridView1.DataSource = ds.Tables["ogrenci"];
            baglanti.Close();
        }

        //Kayıt Güncelleme Bölümü
        private void button3_Click(object sender, EventArgs e)
        {
            komut = new OleDbCommand();
            baglanti.Open();
            komut.Connection = baglanti;
            komut.CommandText = "update ogrenci set ogr_ad='" + tbadi.Text + "', ogr_soyad='" + tbsoyadi.Text + "', ogr_tel='" + tbtel.Text + "', resim='" + oresim.Text + "' where ogr_no=" + tbno.Text + "";
            komut.ExecuteNonQuery();
            baglanti.Close();
            ds.Clear();
            listele();
        }
    }
}

Projenin kaynak dosyasına ulaşmak için Tıklayınız!
Yorumlarınızı bekleriz 🙂

3 comments

  1. Çok Güzel Bir Örnek Çalışması Olmuş 🙂 Teşekkür Ederim

  2. Teşekkürler, sizin örneğiniz çalışıyor. Sadece isim değişiklikleri yaptım ancak kayıt ekleme bölümünde else’den önce
    Hata CS1513 } bekleniyor
    hatası alıyorum. Sebebi ne olabilir? Kontrol ediyorum, sorun göremiyorum.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

WP-SpamFree by Pole Position Marketing

Watch Dragon ball super