Microsoft Access veritabanını kullanarak giriş yapıp personel kaydını oluşturan, listeleyen ve güncelleyen bir C# ile yazılmış kodu sizinle paylaşacağım.
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;
namespace personel_telefon_rehberi
{
public partial class giris : Form
{
public giris()
{
InitializeComponent();
}
//giriş ekranı açıldığında kaç yanlış yapıldığı hesaplanıyor.
int yanlis_girme_sayisi = 0;
/*
* giriş yapıldığında kullanıcı adı ve şifre doğru girilip girilmediği
* kontrol ediliyor.
* doğru giriş yapılmışsa admin veya personel ekranını açıyor.
* yanlış girişleri girmeyi engelliyor
*/
private void button_giris_Click(object sender, EventArgs e)
{
//bu döngü ile veritabanın içindeki tüm satırlar teker teker incelenmektedir.
// her bir satır bilgisi "islem_yapilan_kullanici" değişkenin içine aktarılmaktadır.
bool giris_izni_yok = true;
foreach (var islem_yapilan_kullanici in this.personel_dbDataSet.kullanici)
{// tc ve şifre doğru ise
if (islem_yapilan_kullanici.tc_no == textBox_tc.Text && islem_yapilan_kullanici.sifre == textBox_sifre.Text)
{
this.Hide();
personel mypersonel = new personel();
admin myadmin = new admin();
// tc ve şifre doğru ve personel ise personel ekranını açar
if (islem_yapilan_kullanici.yetkisi == "Personel")
{
//personel ekranına girilen kişinin verileri yollanır
// bu veriler personel ekranında gösterilmektedir.
mypersonel.textBox_adi.Text = islem_yapilan_kullanici.ad;
mypersonel.textBox_soyadi.Text = islem_yapilan_kullanici.soyad;
mypersonel.textBox_tc.Text = islem_yapilan_kullanici.tc_no;
mypersonel.textBox_telefon.Text = islem_yapilan_kullanici.telefon_numarasi;
mypersonel.textBox_sifre.Text = islem_yapilan_kullanici.sifre;
mypersonel.ShowDialog();
//myadmin.ShowDialog();
// Döngü sayısı kadar bekleyip sonrasında kapatma işlemini gerçekleştirir.
}
// tc ve şifre doğru ve Admin ise admin ekranını açar
else if (islem_yapilan_kullanici.yetkisi == "Admin")
{
myadmin.ShowDialog();
int dongu_sayisi = 1;
// Döngü sayısı kadar bekleyip sonrasında kapatma işlemini gerçekleştirir.
for (int i = 0; i <= dongu_sayisi; i++)
{
if (i == dongu_sayisi)
{
textBox_sifre.Text = "";
//MessageBox.Show("Giriş Yapabilirsiniz.");
this.Close();
}
}
}
break;
giris_izni_yok = false;
}
}
//Arama sonucunda tc ve şifresi uyumlu birisi bulunmadığında hata mesajı vermektedir.
if (giris_izni_yok)
{
MessageBox.Show("Hatalı Giriş Yaptınız.");
yanlis_girme_sayisi++;
}
if (yanlis_girme_sayisi == 5)
{
// dongu sayısı kadar dongu yapılıyor ve sonra kapanıyor.
//giriş ekranı kapanıyor
int dongu_sayisi = 50;
for (int i = 0; i <= dongu_sayisi; i++)
{
if (i == dongu_sayisi)
{
textBox_sifre.Text = "";
MessageBox.Show("Programı Tekrar Çalıştırınız.");
this.Close();
}
}
this.Close();
}
}
/*
* kapatma butonu tıklandığında giriş ekranı kapanır
*/
private void cikis_Click(object sender, EventArgs e)
{
this.Close();
}
private void giris_Load(object sender, EventArgs e)
{
// Verilerimiz veritabanından alınmaktadır.
this.kullaniciTableAdapter.Fill(this.personel_dbDataSet.kullanici);
}
/*
* textBox_sifre klavyeden her giriş yapıldığında
* object olarak sender
* KeyEventArgs olarak e
* değişkenleri döndürür.
*/
private void textBox_sifre_KeyDown(object sender, KeyEventArgs e)
{
//KeyCode enter tıklandığında giriş butonunu çalıştırmasını sağlar.
if (e.KeyCode == Keys.Enter)
{
button_giris_Click(sender, e);
}
}
}
}
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 personel_telefon_rehberi
{
public partial class personel : Form
{
public personel()
{
InitializeComponent();
}
private void personel_Load(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
string veritabaninda_calisacak_komut = "SELECT tc_no, ad, soyad, telefon_numarasi, yetkisi FROM kullanici ";
using (OleDbDataAdapter adapter = new OleDbDataAdapter(veritabaninda_calisacak_komut, conn))
{
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
}
private void guncelle_Click(object sender, EventArgs e)
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
// güncelleme için veritabanı sorgusu yazılmaktadır
using (OleDbCommand komut = new OleDbCommand("UPDATE kullanici SET ad = '" + textBox_adi.Text + "' , soyad = '" + textBox_soyadi.Text + "' , sifre = '" + textBox_sifre.Text + "' , telefon_numarasi = '" + textBox_telefon.Text + "' WHERE tc_no = '" + textBox_tc.Text + "' ", conn))
{
//güncelleme işlemi gerçekleştirmektedir.
// yukarıdaki sorguyu veritabanında çalıştırır yani güncelleme yapar.
try
{
komut.ExecuteReader();
MessageBox.Show("Kayıt Güncellendi.");
}
catch (Exception)
{
MessageBox.Show("Kayıt Güncelleme!");
}
}
}
private void personel_ara_Click(object sender, EventArgs e)
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
string veritabaninda_calisacak_komut = "SELECT tc_no, ad, soyad, telefon_numarasi, yetkisi FROM kullanici WHERE ad = '" + textBox_ara_ad.Text + "' OR soyad = '" + textBox_ara_soyad.Text + "' OR tc_no = '" + textBox_ara_tc.Text + "'";
// veritabanından yukarıdaki sorgu yapılmaktadır.
// veritabanındaki veriler belleğe alınmaktadır.
// dataGridView1 veritabanından alınan bilgiler gösterilmektedir.
using (OleDbDataAdapter adapter = new OleDbDataAdapter(veritabaninda_calisacak_komut, conn))
{
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
}
/*
* kapatma butonu tıklandığında giriş ekranı kapanır
*/
private void cikis_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
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 personel_telefon_rehberi
{
public partial class admin : Form
{
public admin()
{
InitializeComponent();
}
/*
* ilk çalıştığında veritabanındaki verileri datatable gösterir.
*/
private void admin_Load(object sender, EventArgs e)
{
// Verilerimiz veritabanından alınmaktadır.
this.kullaniciTableAdapter.Fill(this.personel_dbDataSet.kullanici);
}
/*
* veritabanına bağlantı kurulup veriler alınmaktadır.
* veriler DataSet ve dataGridView1 içine aktarılmasını sağlamaktadır.
*/
void goster()
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
string veritabaninda_calisacak_komut = "SELECT tc_no, ad, soyad, telefon_numarasi, yetkisi FROM kullanici ";
// veritabanından yukarıdaki sorgu yapılmaktadır.
// veritabanındaki veriler belleğe alınmaktadır.
// dataGridView1 veritabanından alınan bilgiler gösterilmektedir.
using (OleDbDataAdapter adapter = new OleDbDataAdapter(veritabaninda_calisacak_komut, conn))
{
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
}
private void personel_ara_Click(object sender, EventArgs e)
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
string veritabaninda_calisacak_komut = "SELECT * FROM kullanici WHERE ad = '" + textBox_ara_ad.Text + "' AND soyad = '" + textBox_ara_soyad.Text + "' ";
// veritabanından yukarıdaki sorgu yapılmaktadır.
//girilen ad ve soyada göre kişi bilgileri veritabanından çekilmektedir.
try
{
using (OleDbDataAdapter adapter = new OleDbDataAdapter(veritabaninda_calisacak_komut, conn))
{
//veritabanından çekilen veriler forma aktarılmaktadır.
DataTable dt = new DataTable();
adapter.Fill(dt);
textBox_tc.Text = dt.Rows[0][1].ToString();
textBox_adi.Text = dt.Rows[0][2].ToString();
textBox_soyadi.Text = dt.Rows[0][3].ToString();
textBox_sifre.Text = dt.Rows[0][4].ToString();
textBox_telefon.Text = dt.Rows[0][5].ToString();
comboBox_yetkisi.Text = dt.Rows[0][6].ToString();
}
}
catch (Exception)
{
// aranılan veri bulunmadığında form alanları boşaltılmaktadır.
textBox_tc.Text = "";
textBox_adi.Text = "";
textBox_soyadi.Text = "";
textBox_sifre.Text = "";
textBox_telefon.Text = "";
comboBox_yetkisi.Text = "";
}
}
private void button_ekle_Click(object sender, EventArgs e)
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
// ekleme için veritabanı sorgusu yazılmaktadır
using (OleDbCommand komut = new OleDbCommand("INSERT INTO kullanici (ad, soyad, sifre, telefon_numarasi, tc_no, yetkisi, aktif_mi) VALUES('" + textBox_adi.Text + "' , '" + textBox_soyadi.Text + "' , '" + textBox_sifre.Text + "' , '" + textBox_telefon.Text + "' , '" + textBox_tc.Text + "', '" + comboBox_yetkisi.Text + "', '1') ", conn))
{
// veritabanından yukarıdaki sorgu yapılmaktadır.
//yeni veriler eklenmektedir.
// yukarıdaki sorguyu veritabanında çalıştırır yani ekleme yapar.
try
{
komut.ExecuteReader();
MessageBox.Show("Kayıt Eklendi.");
}
catch (Exception)
{
MessageBox.Show("Kayıt Eklenemedi!");
}
goster();
}
}
private void button_guncelle_Click(object sender, EventArgs e)
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
// güncelleme için veritabanı sorgusu yazılmaktadır
using (OleDbCommand komut = new OleDbCommand("UPDATE kullanici SET ad = '" + textBox_adi.Text + "' , soyad = '" + textBox_soyadi.Text + "' , sifre = '" + textBox_sifre.Text + "' , telefon_numarasi = '" + textBox_telefon.Text + "' , tc_no = '" + textBox_tc.Text + "' , yetkisi = '" + comboBox_yetkisi.Text + "' WHERE tc_no = '" + textBox_tc.Text + "' ", conn))
{
//güncelleme işlemi gerçekleştirmektedir.
// yukarıdaki sorguyu veritabanında çalıştırır yani güncelleme yapar.
try
{
komut.ExecuteReader();
MessageBox.Show("Kayıt Güncellendi.");
}
catch (Exception)
{
MessageBox.Show("Kayıt Güncelleme!");
}
goster();
}
}
private void button_sil_Click(object sender, EventArgs e)
{
//veritabanı bağlantısı kurulmaktadır.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\personel_db.accdb");
conn.Open();
// silme için veritabanı sorgusu yazılmaktadır
using (OleDbCommand komut = new OleDbCommand("DELETE FROM kullanici WHERE tc_no = '" + textBox_tc.Text + "' ", conn))
{
//silme işlemi gerçekleştirmektedir.
// yukarıdaki sorguyu veritabanında çalıştırır yani silme yapar.
try
{
komut.ExecuteReader();
MessageBox.Show("Kayıt Silindi.");
}
catch (Exception)
{
MessageBox.Show("Kayıt Silinemedi!");
}
goster();
}
}
/*
* kapatma butonu tıklandığında giriş ekranı kapanır
*/
private void cikis_Click(object sender, EventArgs e)
{
this.Close();
}
}
}