Windows c# uygulaması Access Veri tabanı ekleme, düzenleme, silme işlemleri

Arif Ceylan/ Mart 14, 2017/ c#/ 0 comments

Bu yazımızda C# ile Windows uygulaması üzerinde Access veri tabanındaki bir tabloda ekleme-düzenleme-silme işlemleri yapacağız ve bunu yaparken görsel nesneleri kullanacağız. Aynı işlemler yapılarak Sql Server uygulaması da yapılabilir.

Daha sonra eğer talep olursa nesneleri kodlarla oluşturarak da yapabiliriz.

Öncelikle Access veri tabanı ve bir tablo oluşturalım. Oluşturacağım veri tabanının adı data.

Oluştura tıkladıktan sonra veri tabanımız ve bir tablo oluşacak. Gelen tabloya sağ tıklayıp tasarım görünümünü açalım.

Tablonun adını ogrenci yapalım.

Tablomuzun alanlarını aşağıdaki gibi düzenleyip kaydedelim.

Visual Studio içerisinde File-New Project ile yeni bir Windows Forms uygulaması oluşturalım.

Formumuza nesneleri aşağıdaki gibi yerleştirelim.

Formdaki nesnelere isimler verdim. Kodlardaki nesne ismi ile sizinkiler farklı olabilir. Ona dikkat edin.

Datagridview içerisindeki Add Project Data Source a tıklayalım. Datagridivew eklemesek de Bindingsource u direkt olarak projemize ekleyebiliriz. Daha sonra da özelliklerinden dataset oluşturabiliriz.

Gelen ekranda Database i seçip nexte tıklayalım. Sonraki ekranda da Dataseti seçip nexte tıklayalım.

Sonraki ekranda New Connectiona tıklayıp Sql server seçili olan bölümü Change düğmesine tıklayarak Access olarak değiştirelim.

Veri tabanımızı Browse ile seçtikten sonra test connectiona tıklayabiliriz.

Test Connection Successfully mesajını alıyorsak işlem tamamdır, ilerleyebiliriz.

Sonraki ekranda connectionstring adını soracak. Çok önemli değil ilerleyelim.

Sonraki ekranda tablolarımızı seçeceğiz. Alt bölümünde de oluşturacağı datasetin adı yazmakta.

Finishe tıkladığımızda formun alt bölümünde yeni nesnelerin oluştuğunu, form load olayına da veritabanından verileri çağıran kodun yazıldığını göreceksiniz.

Aşağıdaki resimde göreceğiniz üzere datagridview nesnemizin içerisi de doldu.

Textboxlarımızı veritabanındaki alanlara bağlayabiliriz. Böylece datagridviewde bir kayıt seçildiğinde onun bilgileri otomatik olarak gelecektir. Veya kayıtlar arasında butonlarla gezinildiğinde…

Textboxları sırayla seçip hangi alana ait bilgiye bağlayacağımızı seçelim.

Her bir textbox için alanları ayrı ayrı seçelim.

Daha sonra düğmelere çift tıklayıp kodlarını yazalım.

Yeni düğmesi için kod;

ogrenciBindingSource.AddNew();

Not: Bende oluşturulan bindingsource un adı ile sizdeki farklı olabilir. Ona dikkat edin.

Kaydet düğmesi için kod:

ogrenciBindingSource.EndEdit();

Sil düğmesi için kod;

ogrenciBindingSource.RemoveCurrent();

ilk kayıt düğmesi için kod;

ogrenciBindingSource.MoveFirst();

önceki kayıt düğmesi için kod;

ogrenciBindingSource.MovePrevious();

sonraki kayıt düğmesi için kod;

ogrenciBindingSource.MoveNext();

son kayıt için kod;

ogrenciBindingSource.MoveLast();

Programı çalıştırdığımızda düğmelerin çalıştığını göreceksiniz.

Yalnız programda bazı kontrollerin ve düzeltmelerin de yapılması gerekli. Yeni bir kayıt oluşturulurken textboxa fokuslama, boş mu kontrolü, datagridviewde ogrenciidsinin gözükmemesi vs. gibi.

Onun haricinde şu an eklenen bilgiler veri tabanında güncellenmiyor. Onun için de kod yazılması gerekiyor. Bunu program çıkış olayına da koyabiliriz, her değişiklikten sonra da kaydettirebilirsiniz. Size kalmış. (ogrenciidler – değer aldı. Sebebi bu, tabi o bölümü gridviewda göstermemeniz daha iyi)

ogrenciTableAdapter.Update(dataDataSet);

Bu kodla da tableadapter nesnesini dataDataSet ile güncelliyoruz. Siz buraya kendi adapter nesnenizin ve datasetinizin adını yazarsınız…

Eğer hala projenizin her çalışmasında veriler gidiyorsa sebebi şu;

Projenize veri tabanınız dahil edilmiş durumda ve her çalışmada veri tabanı tekrardan bin klasörüne kopyalanıyor. Doğal olarak da ilk haliyle kopyalanıyor ve boş geliyor. Programı direkt çalışırsanız verilerin güncel olduğunu göreceksiniz.

Şimdi diğer işlemlerle vakit kaybetmeyelim ve Arama bölümüne geçelim.

Ara düğmesine yazacağımız kodda bindingsource nesnesinin filter özelliğini kullanacağız.

 

if (rdbAd.Checked)//Ada göre ara seçiliyse

{

ogrenciBindingSource.Filter = "ogrenciAd like '*" + txtAra.Text + "*'"; //Sql cümlesinin where bölümü gibi. alan like '%deger%' kullandık. deger txtAra dan alınıyor. Yalnız accessde % yerine * kullanılıyor.

}else if (rdbSoyad.Checked)//Soyada göre seçiliyse

{

ogrenciBindingSource.Filter = "ogrenciSoyad like '*" + txtAra.Text + "*'";

}

else//Hiçbirini seçmeden araya tıkladıysa

{

MessageBox.Show("Seçeneklerden birini seçsene :P");

}

Programımız düzgün çalışmakta.

Bazen proje 64 bit derlenirse hata verebiliyor. Project properties bölümünden target olarak 32 bit seçilmesi gerekebilir.

Ek Not: Seçili olan kaydın verisine kod ile ulaşmak için kullanabileceğimiz kod;

            DataRowView drv = (DataRowView)kisiBindingSource.Current;
            MessageBox.Show(drv.Row["ad"].ToString());

 

Share this Post

Leave a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*