Oca 22

C# Access 2007 Bağlantısı

Microsoft_Office_Access_2007      Bu yazımda C# ile access 2007 bağlantısını anlatacağım öncelikle access’de veritabanı oluşturma kısmını atlıyorum. Veritabanı oluşturduğunuzu varsayarak sonraki işlemlere değineceğim. Veritabanımızın ismi kasa.accdb olsun. Önceden hazırladığımız c# form(içerisinde datagrid, buton, textbox vs. bulunan) içerisinde hangi alana  kod yazacaksak. Ben class metod tabanlı çalışmayı öneririm.Buton içine girip bodoslama kod yazma olayı eskide kaldı artık.

solution

Kodlarınızın okunabilirliği açısından class metod tabanlı çalışmanız sizin yararınıza olacaktır.

<—–Solution explorer’daki Baglanti.cs isimli dosya bizim baglantı işlemlerini yapacağımız kısımdır. Ekleme Silme Güncelleme Gösterme gibi işlemleri burada tanımlamanızı ve sadece sql sorgusu göndererek bu class’taki metodları çağırmanızı tavsiye ederim . Tabi ki bunun yeterli gelmeyeceği yerler de olabilir. Bu durumda işinizi halledeceğiniz şekilde bildiğiniz yöntemle kod yazmanızı öneririm. Eskiler ne demiş En kısa yol en iyi bildiğin yoldur.

Bir bağlantı tanımlamamız gerekir bağlantı tanımlama işlemi ve connection string aşağıdaki gibidir.

OleDbConnection baglanti = new OleDbConnection(“Provider=Microsoft.Ace.OleDb.12.0; Data Source=kasa.accdb”);

Bağlantı cümlesinde belirttiğimiz yola göre (Data Source tanımlaması ) kasa.accdb dosyamız projemizin debug klasörü içerisinde yer almalıdır. Yapılandırıcı metod içerisinde baglantiyi açıyoruz.

public Baglanti()
{

try
{
baglanti.Open();
}
catch (Exception hata)
{
MessageBox.Show(“Bağlantı sırasında hata oluştu.”+hata.Message , “Hata” , MessageBoxButtons.OK,MessageBoxIcon.Error );
}
}

Burada değinmem gereken bir konu da yapılandırıcı metod. Baglanti class’ına erişim nesne aracılığı ile olur nesne’yi de çağırırken Baglanti nesne=new Baglanti();

cümlesi ile çağırıyoruz. Burada new dediğimiz anda yapılandırıcı içerisindeki kodlar çağırılır. Nesneyi tanımladığımız anda bağlantı açılmış ve işleme hazır hale gelir.

Datagrid içerisinde verileri göstereceğiz. Metodumuz şu şekilde,

public DataTable goster(string sqlkomutu)
{

DataTable tablo = new DataTable();
OleDbDataAdapter dt = new OleDbDataAdapter(sqlkomutu,baglanti);
dt.Fill(tablo);
return tablo;
baglanti.close();
}

Metodumuz Datatable türünde bir tablo döndürecektir. Bu metodu oluşturduğumuz nesne aracılığıyla DataGridView’a kaynak olarak gösteriyoruz.

Baglanti nesne=new Baglanti();

dataGridView1.DataSource=nesne.goster();

Ekleme işlemi içinse aşağıdaki mnetodu kullanabilirsiniz.

public void ekle(string sqlkomutu)
{

OleDbCommand dc = new OleDbCommand(sqlkomutu,baglanti); //Oledb command ile sql sorgusu ile baglantiyi birleştirdik.
try
{
dc.ExecuteNonQuery();// Tabloda değişiklik olacağı için executenonquery okuma işlemi olsaydı executeReader kullanacaktık.
}
catch (Exception hata)
{
MessageBox.Show(“Ekleme sırasında hata oluştu” + hata.Message, “Hata”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
MessageBox.Show(“Gelir Başarıyla Eklendi”, “Doğru işlem”, MessageBoxButtons.OK, MessageBoxIcon.Information);
baglanti.Close();
}

        Try Catch Bloklarını alışkanlık haline getirmenizde fayda var. Zira programınızın kırılmasını önleyecektir. İstenmeyen bir durum oluştuğunda mesaj veya sizin belirttiğiniz yöntemleri uygulayacaktır. Try catch blokları yazılımcının olmazsa olmazı haline gelmedir.

        Yukarıda belirttiğim metodları ister baglanti class’ı içinde isterseniz de buton vs. içinde kullanabilirsiniz. Ancak dikkat etmeniz gereken nokta parametreleridir. Doğru parametleri doğru şekilde verirseniz heryerde kullanabilirsiniz.

 

Bir Cevap Yazın