ABD Münbiçi bırakır mı ?

ABD, Münbiçin yarısı sizde yarısı bizde kalsın dedi

SON 20 YILDA OSCAR KAZANAN KADINLAR

Son 20 yılda En İyi Kadın Oyuncu kategorisinde Oscar kazanan oyuncuların listesi...

AFRİN HAREKATI

Zeytin Dalı Harekatında teröristlerden temizlenen bölge artıyor

SILKROAD XIAN SERVER

2017 de açılan Xian server ilginç özelliklerde

  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
C# Access Veritabanı Bağlantısı

 
#1

Merhabalar herkese, bugünkü makalemiz access ile veritabanı bağlantısı yapmaktır. Bağlantıyı yapmak için Office programlarından access'e sahip olmalısınız. Bu konuda Visual Studio 2015 Community Access 2016 Kullanılmıştır.

İlk olarak accessi açalım. Böyle bir ekran ile karşılaşacaksınız. 

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

1VNG4p.png

Boş masaüstü veritabanı'na basıp Veritabanı ismimizi oluşturuyoruz. 

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

adX1o5.png

Ben ThtdbExample adında veritabanı(datebase) ismini oluşturdum şimdi sıra tablo(tables) isim vermeye geldi. 

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

1VNGrA.png

Yuvarlak içine aldığımız yerde (tabi sizde tablo1 yazacaktır.) üstüne gelip sağ tık ile tasarım görünümü yazısına tıklayıp tablo adını belirliyoruz.Ben ogrencı yaptım. Ve karşımıza çıkan sütunları(column) dolduracağız. Bunlar Tablonun içindeki sütunlardır.

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

MokaoM.png

Şeklinde dolduruyoruz. Size kalmış birşeydir. Burdaki örnekler ThtdbExample adlı databasenin ogrencı tablosunun ogr_no, ogr_adsoyad, ogr_snf sütunlarına göre anlatılacaktır. Sütunları doldurduktan sonra sağ kısımda bulunan tabloya basıp sağ tık ve kayıt ediyoruz. Artık sutünları ekledik son olarak veri eklemek kaldı. 

Üst kısımda tablo adınız yazmaktadır. Ordan da kayıt edebilirsiniz. Üst kısımda bulunan (tablo isminiz) sağ tık yapıp sütun düzenleme yerinden çıkalım ve sağ kısımda bulunan ogrencı (tablo adınız) yere çift tıklayalım. Böyle bir ekran ile karşılaşacaksınız. 

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

PnQO16.png

Burdan isterseniz veri ekleyebilirsiniz. Burdaki kimlik id olmaktadır ve veri eklendiğinde otomatik artmaktadır. Daha detaylı access anlatmak istemiyorum konu çok uzuyacak buraya kadar temel access mantığını kavranmış bulunmaktasınız artık veritabanınız hazırdır. Visual Studio'yu açıp yeni form proje oluşturalım.

Resimde görüldüğü şekilde Toolboxdan araçlarımızı yerleştirelim.

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

3vApMO.png

+ 12 label
+ 4 buton
+ 4 Panel
+ 1 Datagridview 
Bulunmaktadır. Artık form alanımızı oluşturduk datagridview veritabanınızda bulunan sütunları listelemeye yarayan araçtır. Paneller ise düzgün ve hizalı görünmesi için koydum. 

~Veritabanı Bağlantısı Kurma~


Form alanımızın kod penceresini açalım. Ve biraz önceki oluşturduğunuz datebaseyi
Kod:
Belgeler\Visual Studio 2015\Projects\ThtDbExample\ThtDbExample\bin\Debug

Yani projenin bulunduğu yerin bin/debug içine atıyoruz. Benimki burda olduğu için ben buraya attım. Artık herşey hazırdır. Veritabanı bağlantısı yapalım.

İlk olarak using System.Data.OleDb; sınıfını ekleyelim. 
Kod:
OleDbConnection baglan = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ThtDbExample.accdb");

Bu kod ile veritabanı bağlantısı yapılmaktadır. OleDbConnection access veritabanı bağlantısı yapmak için kullanılır baglan adındaki değişkene veritabanı bağlantısını aktarıyoruz.
Kod:
OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ThtDbExample.accdb"

Burdaki kod genelde ya ezberlenir yada Server exploer kısmından kopyalanır. Burda sadece ThtDbExample.accdb kısmını değiştirmelisiniz. Bu sizin Datebase isminizdir. evet veritabanı bağlantısı yapmış bulunmaktayız.

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

2njELd.png

Artık veri ekleme (insert), silme (delete), güncelleme (update) ve arama gibi işlemler yapabiliriz.


DataGridView'de Veritabanında Bulunan Tabloların Görülmesi~

Evet arkadaşlar geri gelmiş bulunmaktayım. Veritabanınızda bulunan tabloları datagridview'e aktarmak için şu kodu veritabanı bağlantısı kodunu yazdığımız kodun altına yazıyoruz.
Kod:
private vo it  listele()
       {
          // vo it birleşik olacaktır.
           //ogrenci tablosunu aktar. ve veritabanı bağlantısı kur.
           OleDbCommand cmd = new OleDbCommand("SELECT * FROM ogrencı", baglan);
           DataTable tablo = new DataTable();
           OleDbDataAdapter adaptor = new OleDbDataAdapter(cmd);
           adaptor.Fill(tablo);
           dataGridView1.DataSource = tablo;
       }
Burda OledbCommand kodu veritabanında sorgu yapmamızı sağlayan koddur update, insert, delete gibi. cmd adındaki değişkene aktarıyoruz. Select * From ogrencı ile ogrencı tablosundaki tüm sütunları çekmeyi sağlıyoruz. (* = tüm anlamına gelir.) DataTable veritabanı tablolarını tablo adındaki değişkene atıyoruz.

Ve OleDbDataAdapter ile sorguyu ilişkilendiriyoruz. ve bunu adaptorün içine aktarıyoruz. Son olarak adaptor.Fill(tablo) kısmında bulunan kod ile okunan dataları tabloya aktarıyoruz. ve son olarak datagridview üzerinde bunları gösteriyoruz.

Artık oluşturmuş olduğumuz listele metotu ile form ekranı açılır açılmaz listelenmesini sağlamak için form alanından bir alana tıklayıp
Kod:
listele();
şeklinde yazmalıyız form açılışta veritabanında bulunan colonları ve bilgileri listeleyecektir.

Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.


~Veritabanına Veri Ekleme~

Evet en can alıcı noktalarından birisine gelmiş bulunmaktayız. Form ekranında tasarlamış olduğumuz ekle bölümündeki Öğrenci Ekle butonuna tıklayalım.

Kod:
try
           {
               DataSet ds = new DataSet();
               // Veritabanı bağlantısını açıyoruz.
               baglan.Open();
               // datasetin içini temizliyoruz.
               ds.Clear();
               // Bağlantı Yapıldıktan sonra ogrencı adındaki tablonun ogr_no, ogr_adsoyad, ogr_snf sütunlarına veri ekleyeceğimizi values diyerek
               // bu verileri sonra gireceğimizi söylüyoruz. ve en son olarak bağlanıyoruz. (@ işareti sonra girmek istiyorum verileri demektir.)
               OleDbCommand cmd = new OleDbCommand("INSERT INTO ogrencı (ogr_no, ogr_adsoyad, ogr_snf) VALUES (@ogr_no, @ogr_adsoyad, @ogr_snf)", baglan); // baglan burda veritabanı bağlantısı değişkenidir. Veritabanı bağlantısını unutmayalım.
               // cmd(komut ekle) ile belirlediğimiz sütunlara Parameters.AddWithValue parametresi ile textboxlardan veri alıp eklettiriyoruz.
               cmd.Parameters.AddWithValue("@ogr_no", Convert.ToInt32(textBox2.Text)); // ogrenci no textboxu
               cmd.Parameters.AddWithValue("@ogr_adsoyad", textBox1.Text); // ogrenci adsoyad textboxu
               cmd.Parameters.AddWithValue("@ogr_snf", textBox3.Text); // ogrenci sınıfı texboxu
               // Kayıt etmek için son kod
               cmd.ExecuteNonQuery();
               // veritabanı bağlantısını kesiyoruz.
               baglan.Close();
               // ve listele diye metot oluşturmuştuk onu buraya ekliyerek yeni eklenen verinin görünmesini sağlıyoruz.
               listele();
               MessageBox.Show("Öğrenci Başarıyla Kayıt Edildi.");
           }
           catch (Exception ex)
           {
               // eğer hata varsa ex'e aktarıp bunu mesaj şeklinde kullanıcıya sölüyoruz, ve veritabanı bağlantısını kapatıyoruz.
               MessageBox.Show(ex.Message);
               baglan.Close();
           }
Evet arkadaşlar konu fazla uzun olmasın diye saatlerce yazamyıcağım için kod blogunun içine ufak notlar yazdım ingilizcesi olan kişi bile bunların ne olduğunu hemen anlar try-catch kullanmamın sebebi bir hata oluştuğunda hatayı ekrana bastırmasıdır. Bu şekilde hatayı nerde yaptığını bulabilme oranınız artmaktadır. Bazı internet sitelerinde values den sonra @ogr_no tarzında değilde texbox gibi gibi şeklinde giriyor bu gösterdiğim metot ile daha kolay ve karmaşıklık yaratmadan veri eklemesi yapabilirsiniz.

Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.


~Veritabanında Bulunan Veriyi Düzenleme~


Evet arkadaşlar form alanımızda düzenle Bölümündeki düzenle butonuna çift tıklayıp kodlarımızı girelim. Burdaki mantık kullanıcı ilk texboxa (öğrenci numarası yani) girdiği veriyi veritabanında aratıp diğer textboxlardaki veriler ile değiştirilmesi sağlanır. Mesela ogrencinin numarası: 17 AdıSoyadı: Ahmet sınıfı: 10 olan bir veriyi değiştirmek istiyor 17 ilk texboxa değişecek

öğrencini numarasını (17) giriyor ve diğer texboxlara da adını soyadını ve sınıf değerlerini girerek Önceki ahmet sınıf: 10 olan veri gibip texboxlara sonradan girilen veri eklenmiş oluyor. Yazılacak kodlar neredeyse ekleme ile aynı sadece birkaç fark vardır.

Kod:
try
           {
               DataSet ds = new DataSet();
               // Veritabanı bağlantısını açıyoruz.
               baglan.Open();
               ds.Clear();
               // Burda update ile ogrenci adındaki tablodan ogr_adsoyad, ogr_snf adındaki sütunları düzenliyoruz. Where(nerede) ile hangi öğrencinin bilgileri olduğunu söylüyoruz.
               OleDbCommand cmd = new OleDbCommand("UPDATE ogrencı Set ogr_adsoyad=@ogr_adsoyad, ogr_snf=@ogr_snf WHERE ogr_no=@ogr_no", baglan);
               cmd.Parameters.AddWithValue("@ogr_adsoyad",textBox7.Text); // Güncellenecek öğrencinin yeni adı
               cmd.Parameters.AddWithValue("@ogr_snf", textBox5.Text); // Güncellenecek öğrencinin yeni sınıfı
               cmd.Parameters.AddWithValue("@ogr_no", Convert.ToInt32(textBox6.Text)); // Hangi öğrencinin bilgileri güncellenecek
               // cmd(komut ekle) ile belirlediğimiz sütunlara textboxlardan veri alıp eklettiriyoruz.
               cmd.ExecuteNonQuery();
               baglan.Close();
               // bağlantıyı kapatıp datagridi güncelliyoruz.
               listele();
               MessageBox.Show("Öğrenciye Ait Bilgiler Güncellendi.");
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
               baglan.Close();
           }
Gene try-catch ile yaptık ki hata olduğunda yakalayıp bildirsin diye. Konu uzun olmasın ve sıkılmayın diye kod aralarında anlattım özet bir şekilde. Burda values yok fark ederseniz bunun yerine = den sonra bazı kaynaklara göre direk texbox.text tarzı alıyor ama ben öyle yapamıyorum çünkü çok karmaşık ve düzensiz duruyor bu şekilde hem düzenli hemde daha kolay oluyor.

Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.


Veritabanında Bulunan Veriyi Silme~

Form alanından Öğrenci sil bölümündeki öğrenci sil butonuna çift tıklayalım. Burdaki mantık çok basittir öğrenci numarası ile tablo belirlenir ve tablo tümüyle silinir.

Kod:
try
           {
               // Veritabanı bağlantısı açılır.
               baglan.Open();
               // Delete from ile tablo tümüyle silinmektedir. Where(hangi tablo) ogr_no 'nun sütunundaki tablo diye özetleyebiliriz. Tabiki veriyi sonra gireceğimizi söylüyoruz. ve veritabanı bağlantısını da ekliyoruz son kısıma.
               OleDbCommand cmd = new OleDbCommand("DELETE FROM ogrencı WHERE ogr_no = @ogr_no", baglan);
               // Ve silinecek öğrencinin numarasını belirliyoruz.
               cmd.Parameters.AddWithValue("@ogr_no", Convert.ToInt32(textBox4.Text));
               cmd.ExecuteNonQuery();
               baglan.Close();
               listele();
               MessageBox.Show("Öğrenci Başarıyla Silindi.");
           }
           catch (Exception hata)
           {
               MessageBox.Show(hata.Message);
           }
       }

Texboxa girilen öğrenci numarasına ait tüm bilgiler silinecektir.

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

OVElD5.png


~Veritabanında Veri Bulma~


Textboxa girilen öğrenci numarası ile öğrenciyi Datagridview üzerinde göstereceğiz.

Kod:
try
           {
               // da adında oledbdataadapter oluşturduk. ve select from ile ogrencı tablosunun ogr_no sütunundaki texboxa girilen öğrenci numarasını arıyoruz like burda aramak demektir.
               OleDbDataAdapter da = new OleDbDataAdapter("Select * from ogrencı where ogr_no like '" + Convert.ToInt32(textBox8.Text) + "%'", baglan);
               ds = new DataSet();
               baglan.Open();
               da.Fill(ds, "ogrencı");
               // ve bulduğun tabloları datagridview'de göster.
               dataGridView1.DataSource = ds.Tables["ogrencı"];
               baglan.Close();
           }
           catch (Exception hata)
           {
               MessageBox.Show(hata.Message);
               baglan.Close();
           }

Buda bu kadardır. 

wol_error.gif
Resim yeniden boyutlandırıldı, orjinalini görmek için tıklayın.

m4EDoV.png



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  C# Access Veritabanı İşlemleri(Select,İnsert,Update,Delete) Adamantin 0 1,018 19-03-2017, Saat: 15:58
Son Yorum: Adamantin

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2018 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-2018 Tüm hakları saklıdır.