|
ACCESS’DE Kİ KAYITLARI LİSTELEME VE KAYIT EKLEME(WINDOWS APP.)
Bu
makalemizde C#’ta ADO.NET ile access veri tabanına bağlanıp veri
tabanındaki kayıtları nasıl okuyacağımızı ve veri tabanına nasıl veri
ekleyebileceğimizi anlatmaya çalışacağım.
Uygulamamıza geçmeden önce ADO.NET hakkında kısaca bilgi vermek
istiyorum.
.Net teknolojisinde
veri tabanı erişim sınıflarının genel adına ADO.NET diyoruz. ADO.NET,
.Net teknolojisi için geliştirilmiş yeni bir veri erişim teknolojisidir.
ADO.Net’in amaçları arasında;
*İlişkisel veya ilişkisel olmayan verilere kolay erişim.
*Kendinden önceki uygulamalardan daha fazla veri kaynağını
destekleyebilecek
kapasite artışı.
*Internet üzerinden çok katmanlı uygulamalara destek
*XML ile
ilişkisel veri erişimini birleştirmek.
ADO.NET’in
temel isim alanı (namespace) “System.Data” dır. Örneğin SQL ile
çalışırken ayrı ayrı hem “System.Data.SqlClient” hem de
“System.Data.OleDb” isim alanlarını kullanabiliriz.
“System.Data.SqlClient” isim alanı yanlızca SQL sunucu için optimize
edilmiştir. Access veri tabanı ile çalışacaksak “System.Data.OleDb” isim
alanını kullanmamız gerekir.
ADO.NET
hakkında bu kısa bilgiden sonra uygulamamıza geçelim. Öncelikle erişim
sağlayıp üzerinde işlem yapacağımız access veri tabanımızı oluşturalım.
Ben aşağıdaki gibi bir veri tabanı hazırladım.
ACCESS
VERİ TABANI

Hazırladığımız veri tabanını hard diskimizde herhangi bir yere kayıt
edelim. Ben bu uygulamada veri tabanını d sürücüsüne kaydediyorum.
Veri
tabanını hazırladıktan sonra uygulamamızı nasıl geliştireceğimize karar
vermeliyiz.
HAZIRLIK
1-)Veri tabanına bağlantı için kullanılacak provider ve data source
nedir?
Provider=Microsoft.Jet.OleDb.4.0 (Access’e bağlantı için
gerekli provider)
Data Source=D:/sirket.mdb
2-)Veri Tabanı ile işlemler için kullanılacak nesnelerimiz nelerdir?
Aşağıdaki gibi 4 adet nesne oluşturmamız gerekiyor.
Connection
→ baglan
(Veri tabanına bağlantı için)
Command →
sec ve ekle (Seçme ve ekleme işlemleri için)
DataReader
→
oku (Okuma yapmak için)
3-)Form Tasarımını ve programın nasıl çalışacağını belirleyelim.
Formumuzun üzerine şekildeki gibi 2 buton, 4 label ve 4 textbox
ekliyoruz. Oku butonuna her bastığımızda veri tabanındaki kayıtları
textbox1 ve textbox2 de listeleyelim. Ekle butonuna bastığımızda ise
textbox3 ve textbox4’e yazdığımız veriler Access veri tabanına eklensin.

Ön
hazırlığımızı yaptıktan sonra artık kodlarımızı yazmaya başlayabiliriz.
İşin en güzel kısmı da burası:)
WINDOWS
APPLICATION
Visual
studio 2005 C#’da Windows application açıyoruz. Formumuzu yukarıdaki
gibi tasarladıktan sonra kodları yazmaya başlıyoruz.
using
System.Data.OleDb;
//Access ile işlemler için gerekli isim alanını tanımladım.
namespace
ADO.NET_AccessInsertveSelect_
{
public
partial class
Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Bağlantıda ve diğer işemlerde kullanacağım
nesneleri global
//olarak tanımladım.
OleDbConnection
baglan = new
OleDbConnection(); //bağlantı için
OleDbCommand
sec = new
OleDbCommand(); //Tablodaki
kayıtları seçmek için
OleDbCommand
ekle = new
OleDbCommand(); //Tabloya kayıt
eklemek için
OleDbDataReader
oku; //okuma işlemini
yapmak için
//Formumuza çift tıklayarak kod satırına geliyoruz.
private
void Form1_Load(object
sender, EventArgs e)
{
//Form açılır açılmaz veri tabanına
bağlantının
//kurulması için form1_load içinde access e
bağlanıyorum.
baglan.ConnectionString="Provider=Microsoft.Jet.OleDb.4.0;Data
Source=d:/sirket.mdb;";
//baglantıyı açıyorum.
baglan.Open();
//aşagıdaki komutu şu şekilde de
kullanabiliriz.
//sec.Connection=baglan;
//ikiside aynı işi yapar yani sec komutunun
//baglan ile çalışacağını…
sec
= baglan.CreateCommand();
//firmalar tablosundaki tüm kayıtlar
seçiliyor.
sec.CommandText
= "SELECT * FROM firma";
//seçilen bu kayıtlar ExecuteReader()
fonksiyonu
//DataReader nesnesi sayesinde okunuyor
oku
= sec.ExecuteReader();
//Okuma işlemi oku butonuna tıkandığında
olacağı için
//read() fonksiyonunu altta button1_Click
içinde kullanacağız.
}
//Formumuzun üzerindeki Button1’e çift tıklayarak kod satırına geliyoruz
private void
button1_Click(object sender,
EventArgs e)
{
try
{
//Burada try ve catch kullanıyoruz
//çünkü
veri tabanındaki kayıtların hepsi
//okunup okunacak veri kalmadığı zaman
catch’in içindeki hata
//oluşuyor.
oku.Read();
//Acsess’ki no sütununu textbox1′de göster
textBox1.Text = "" + oku["firma
no"];
//Acsess’ki firma sütununu textbox2′de göster
textBox2.Text = "" + oku["firma
adı"];
}
catch (InvalidOperationException)
{
//veri tabanındaki tüm kayıtlar okunup
//okunacak veri kalmadığı zaman aşağıdaki
mesaj veriliyor.
MessageBox.Show("Okunacak
veri kalmadı.");
}
}
//Formumuzun üzerindeki Button2’e çift tıklayarak kod satırına geliyoruz
private
void button2_Click(object
sender, EventArgs e)
{
try
{
//Buradaki try catch’i ise hatalı veri
girişini önlemek
//için kullandık
//Örneğin Textbox’lara veri girmeden ekle
butonuna basarsak
//catch’in içindeki mesaj verilir.
ekle = baglan.CreateCommand();
//textbox3′e girilen değeri firma
no sütününa
//textbox4′e girilen değeri firma adı sütununa ekle
ekle.CommandText
= "INSERT INTO firma([firma no],[firma adı])
VALUES(’" + textBox3.Text+"’,'"
+ textBox4.Text + "’)";
if (ekle.ExecuteNonQuery() == 1)
{
//Buradaki if i ise şunun için kullandık;
//eğer ExecuteNonQuery fonksiyonu doğru bir
şekilde çalışmışsa yani 1 se
//yani veri doğru bir şekilde eklenmişse
aşağıdaki mesajı ver.
MessageBox.Show("Veri
Eklendi.");
}
}
catch(OleDbException)
{
//hatalı veri girişinde verilecek mesaj.
MessageBox.Show("Hatalı
veri girişi yaptınız.");
}
}}}
Artık
programımızı çalıştırarak veri tabanındaki kayıtları okuyabilir ve kayıt
ekleyebiliriz.
Bir sonraki
makalede görüşmek üzere…
İyi çalışmalar… |