dengesiz_tosbaga
08-01-2008, 12:57 AM
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
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