Projemize ekleyeceğimiz bir class ile veritabanı işlemlerimizi çok daha rahat yapabiliriz.Üstelik bu classı bundan sonraki bütün prjelerimizdede kullanabiliriz
Not: Bu yazı bir önceki yaznın devamı niteliğindedir.Okumadıysanız önceki yazıyı okuyup bu yazıyı okuyunuz.
Öncelikle projemıze sağ tıklayıp ADD NEW ITEM ı seçiyor gelen ekrandan Class ı seçiyor adına db yazıyoruz.
Şimdi eklediğimiz classın içini aynen şöyle yapın
[csharp]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OleDb;
using System.IO;
using System.Data;
namespace WindowsFormsApplication1
{
class db
{
OleDbConnection baglanti;
public void baglan()
{
baglanti = new OleDbConnection();
baglanti.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Directory.GetCurrentDirectory()+"\db.accdb";
if (baglanti.State == ConnectionState.Closed)
{
baglanti.Open();
}
}
public void sql_calistir(string sql)
{
baglan();
OleDbCommand komut = new OleDbCommand(sql, baglanti);
komut.ExecuteNonQuery();
baglanti_kapat();
}
public OleDbDataReader sql_sonucu_al(string sql)
{
baglan();
OleDbCommand komut = new OleDbCommand(sql, baglanti);
OleDbDataReader okuyucu = komut.ExecuteReader();
return okuyucu;
}
public void baglanti_kapat()
{
if (baglanti.State != ConnectionState.Closed)
{
baglanti.Close();
}
}
}
}[/csharp]
Evet classımız artık hazır Şimdi Form1 kod ekranına gelin
Global alana şunu ekleyın
[csharp]db cls = new db();[/csharp]
Veritabanına kayıt ekleme
Veritabanına kayıt eklemek için kaydet butonna basın ve kod ekranına aynen sunu yazın
[csharp] private void button1_Click(object sender, EventArgs e)
{
string sorgu = "INSERT INTO KisiTBL (ad,soyad,telefon) VALUES(‘" + textBox1.Text + "’,’" + textBox2.Text + "’,’" + textBox3.Text + "’)";
cls.sql_calistir(sorgu);
MessageBox.Show("Kayıt Eklendi");
listele();
}[/csharp]
Veritabanını Listeleme
Şu fonkısyonu ekleyin.Listele fonkısyonunu nerede çagırırsak datagridvieweimiz en güncel haliyle listelenecektir.
[csharp] void listele()
{
string sorgu = "SELECT * From KisiTBL";
OleDbDataReader okuyucu = cls.sql_sonucu_al(sorgu);
DataTable dt = new DataTable();
dt.Load(okuyucu);
dataGridView1.DataSource = dt;
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
}[/csharp]
Veritabanından Silme veya Güncelleme
Bunun içinöncelikle datagridviweden seçilen kişnini bilgilerinin textboxlara aktarılması lazım.
Bunun için datagridviwe in Cell Click olayına şunları yazın
[csharp] string Kimlik;
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
Kimlik = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
textBox1.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
textBox2.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
textBox3.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
}[/csharp]
Veritabanından Kayıt Silme
Sil butonuna aynen şunu yazın
[csharp] private void button2_Click_1(object sender, EventArgs e)
{
string sorgu = "DELETE * FROM KisiTBL WHERE Kimlik=" + Kimlik + "";
cls.sql_calistir(sorgu);
MessageBox.Show("Kayıt Silindi");
listele();
}[/csharp]
Veritabanından Kayıt Güncelleme
Güncelle butonuna aynen şunu yazın
[csharp] private void button3_Click(object sender, EventArgs e)
{
string sorgu = "UPDATE KisiTBL SET ad=’" + textBox1.Text + "’,soyad=’" + textBox2.Text + "’,telefon=’" + textBox3.Text + "’ WHERE Kimlik=" + Kimlik + "";
cls.sql_calistir(sorgu);
MessageBox.Show("Kayıt Güncellendi");
listele();
}[/csharp]
Gördüğünüz gibi bu class sayesinde veritabanı işlemleri çok kolay.
- string sorgu ya sql sorgumuzu yazıyoruz ve cls.sql_calistir(sorgu) şeklinde bu sorgunun çalışmasını sağlıyoruz.
- Messagebox.show ile dekullanıcya uyarı veriyoruz.
- Datagridviewe en güncel halin aktarılması için her işlemin sonunda listele() fonksıyonunu çağırıyoruz.
Ayrıca db class ı içindeki connection string de veritabanı adınız ne ise onun ile düzeltin. benim access dosya adım db.accdb oldugunu ıcın o sekılde yazdım.Sizin dosyanızın adı ney ise onun ıle değiştirin