C# Veri Tabanı ve DataGrid İşlemleri

Programın Özellikleri

Access veri tabanını kullanmaktadır

Veri tabanına;

-Veri ekleme

-Veri silme

-Veri Güncelleme

-Veri araması yapma

-İstenen veriyi farklı renkte gösterme

-Tüm kayıtları gösterme 

özeliklerine sahiptir.

İndirme Linki

Turbobit

Örnek Video

Programın Kodları

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Veri_Tabani_İslemeri
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=vt1.mdb");
public OleDbCommand kmt = new OleDbCommand();
public OleDbDataAdapter adtr = new OleDbDataAdapter();
public DataSet dtst = new DataSet();
string guncelle = "";//Bunu Güncellemede Kullanıcaz
//-------------------------------------------------------------------------------------------------      
public void listele()//DataGrid' e verileri çekmek için bu kodlar çalışacak.
{
bag.Open();
OleDbDataAdapter adtr = new OleDbDataAdapter("select * From Tablo1", bag);
adtr.Fill(dtst, "Tablo1");
dataGridView1.DataSource = dtst.Tables["Tablo1"];
adtr.Dispose();
bag.Close();
}
//-------------------------------------------------------------------------------------------------  
public void kayitsayisi()//Kayıt Sayısını Göstermek İçin Bu kodları Çalışıcak.
{
bag.Open();
DataSet dtst = new DataSet();
string sorgu = "SELECT * FROM Tablo1";
OleDbDataAdapter adtr = new OleDbDataAdapter(sorgu, bag);
bag.Close();
adtr.Fill(dtst, "Tablo1");
dataGridView1.DataSource = dtst.Tables[0];
for (int i = 0; i < dataGridView1.RowCount; i++)
{
label7.Text = Convert.ToString(i);
}
}
//-------------------------------------------------------------------------------------------------  
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
//Burda DataGrid üzerine tıklandığında textBox' lara veriler aktarılıyor.
//Try Catch yapısına koymamın nedeni Datagrid'in veri değilde başka yerlerine tıklandığında hata vermesidir.
try
{
guncelle = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
textBox6.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
textBox7.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
textBox8.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
textBox9.Text = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
textBox10.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
}
catch
{
;
}
}
private void button1_Click(object sender, EventArgs e)
{
//Kaydetme Kodları
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "")
MessageBox.Show("Tüm Alanları Doldurunuz");
//TextBoxların içleri boşsa bize mesaj vericek.
else
{
//Burda daha önce aynı tc nin kayıtlı olup olmadığına bakıyoruz.
//ilk önce tc alanını çekiyo ve textbox1 deki metinle karşılaştırıyo aynıysa alltaki mesajı veriyor.
//-------------------------------------------------------------------------------------------------  
string sorgu = "Select *From Tablo1 WHERE tc='" + textBox1.Text + "'";
bag.Open();
OleDbCommand okuma = new OleDbCommand(sorgu, bag);
OleDbDataReader oku = okuma.ExecuteReader();
string kontrol = "";
while (oku.Read() == true)
{
kontrol = (oku[0].ToString());
}
bag.Close();
if (textBox1.Text == kontrol)
MessageBox.Show("Bu TC Kayıtlıdır.", "Dikkat", MessageBoxButtons.OK, MessageBoxIcon.None);
//-------------------------------------------------------------------------------------------------  
//Eğer aynı değilse burdaki kaydetme kodları çalışıyor.
else
{
string tc = textBox1.Text;
string ad = textBox2.Text;
string soyad = textBox3.Text;
string il = textBox4.Text;
string ilce = textBox5.Text;
bag.Open();
kmt.Connection = bag;
kmt.CommandText = "INSERT INTO Tablo1 VALUES ('" + tc + "','" + ad + "','" + soyad + "','" + il + "','" + ilce + "')";
kmt.ExecuteNonQuery();
bag.Close();
MessageBox.Show("Kayıt Tamamlandı.", "Kayıt Başarılı", MessageBoxButtons.OK, MessageBoxIcon.Information);
//Burda DataGrid' i temizliyor ve tekrar verileri çekiyor.
dataGridView1.Columns.Clear();
dtst.Tables.Clear();
dataGridView1.Refresh();
listele();//Listelemeyi tekrar yapıyor.
button2.PerformClick();//Bu kod button2 nin çalışmasını sağlar.Yani TextBoxları Temizliyor.
kayitsayisi();//Kayıt Sayısını getiriyor.
}
}
}
private void button4_Click(object sender, EventArgs e)
{
//Güncelleme Kodları
if (textBox6.Text == "" || textBox7.Text == "" || textBox8.Text == "" || textBox9.Text == "" || textBox10.Text == "")
MessageBox.Show("Tüm Alanları Doldurunuz");
//TextBoxların içleri boşsa bize mesaj vericek.
else
{
//Burda güncellemeyi tek tek yapıyo ama tc yi değiştiremiyoruz onu bir kere girebiliyoruz.
bag.Open();
OleDbCommand komut1 = new OleDbCommand("Update Tablo1 set ad='" + textBox7.Text + "' where tc like'" + guncelle + "'", bag);
komut1.ExecuteNonQuery();
OleDbCommand komut2 = new OleDbCommand("Update Tablo1 set soyad='" + textBox8.Text + "' where tc like'" + guncelle + "'", bag);
komut2.ExecuteNonQuery();
OleDbCommand komut3 = new OleDbCommand("Update Tablo1 set il='" + textBox9.Text + "' where tc like'" + guncelle + "'", bag);
komut3.ExecuteNonQuery();
OleDbCommand komut4 = new OleDbCommand("Update Tablo1 set ilce='" + textBox10.Text + "' where tc like'" + guncelle + "'", bag);
komut4.ExecuteNonQuery();
//Burda DataGrid' i temizliyor ve tekrar verileri çekiyor.
bag.Close();
dataGridView1.Columns.Clear();
dtst.Tables.Clear();
dataGridView1.Refresh();
listele();//Listelemeyi tekrar yapıyor.
button2.PerformClick();//Bu kod button2 nin çalışmasını sağlar.Yani TextBoxları Temizliyor.
kayitsayisi();//Kayıt Sayısını getiriyor.
}
}
private void button3_Click(object sender, EventArgs e)
{
if (textBox6.Text == "")
//Eğer Textbox6 boşsa yani sağdaki text oraya gelicek çünkü kayıt seçilmediğinde hata vercek
{
MessageBox.Show("Kayıt Seçilmedi");
}
else
{ 
//Kayıt seçildiğinde silinsin mi diye sorcak yanıt evetse silme kodunu çalıştırcak.
DialogResult cevap;
cevap = MessageBox.Show("Kaydı silmek istediğinizden emin misiniz?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (cevap == DialogResult.Yes)
{
bag.Open();
kmt.Connection = bag;
kmt.CommandText = "DELETE from Tablo1 WHERE tc='" + textBox6.Text + "'";
kmt.ExecuteNonQuery();
kmt.Dispose();
bag.Close();
MessageBox.Show("Kayıt Silindi.", "Kayıt Silme", MessageBoxButtons.OK);
//Burda DataGrid' i temizliyor ve tekrar verileri çekiyor.
dataGridView1.Columns.Clear();
dtst.Tables.Clear();
dataGridView1.Refresh();
listele();//Listelemeyi tekrar yapıyor.
button2.PerformClick();//Bu kod button2 nin çalışmasını sağlar.Yani TextBoxları Temizliyor.
kayitsayisi();//Kayıt Sayısını getiriyor.
}
}
}
private void button2_Click(object sender, EventArgs e)
{
///TextBox ların içini temizliyoruz burda
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
textBox9.Text = "";
textBox10.Text = "";
}
private void Form1_Load(object sender, EventArgs e)
{
//Form açılır açılmaz datagrid üzerine verileri çekiyor ve kayıt sayısını getiriyor.
listele();
kayitsayisi();
button2.PerformClick();
}
private void button5_Click(object sender, EventArgs e)
{
//Burda adı yazılan kişinin arka plan rengi kırmızı olacak
bag.Open();
DataSet dtst = new DataSet();
string sorgu = "SELECT * FROM Tablo1";
OleDbDataAdapter adtr = new OleDbDataAdapter(sorgu, bag);
adtr.Fill(dtst, "Tablo1");
dataGridView1.DataSource = dtst.Tables[0];
for (int i = 0; i < dtst.Tables[0].Rows.Count; i++)
{
string a = Convert.ToString(dtst.Tables[0].Rows[i][1]);//ada göre burası dizi mantığına göre arıyor
//1'i 0 yaparsanız tc ye göre yapar 2 yaprsanız soyada göre
//Adı yazılan kişinin(kişilerin)arkaplanını kırmızı yapıcak.
if (a == textBox11.Text)
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
bag.Close();
//Kayıt Sayısını Getiriyor.
for (int i = 0; i < dataGridView1.RowCount; i++)
{
label7.Text = Convert.ToString(i);
}
}
private void button6_Click(object sender, EventArgs e)
{
//Ada göre arama yapmak için kullanılan kodlar   
bag.Open();
DataSet dtst = new DataSet();
string sorgu = "SELECT * FROM Tablo1 where ad='" + textBox12.Text + "'";
//Sorguda ad' soyad yaparsanız soyada göre arama yapar ne yazarsanız ona göre arar.
//Burdada listeler.
OleDbDataAdapter adtr = new OleDbDataAdapter(sorgu, bag);
adtr.Fill(dtst, "Tablo1");
dataGridView1.DataSource = dtst.Tables[0];
bag.Close();
//Kayıt Sayısını Getiriyor.
for (int i = 0; i < dataGridView1.RowCount; i++)
{
label7.Text = Convert.ToString(i);
}
}
private void button7_Click(object sender, EventArgs e)
{
listele();
kayitsayisi();
button2.PerformClick();
}
}
}
Processing your request, Please wait....