Bu örnekte C# ile access veritabanı bağlantısı kullanarak kayıt ekleme işlemi gerçekleştireceğiz. Daha önceki veritabanı bağlantı örneklerinden farklı olarak bu defa kayıt ekleyeceğimiz tabloda mükerrer kayıt olmasını engelleyeceğiz.
Yani tekrar etmesini istemediğimiz bir alan varsa ( Ör: TC Kimlik Numarası), MessageBox ile bir uyarı verdireceğiz. Tekrar eden kayıt var mı? Yok mu? kontrol ederek tekrar eden kayıt yoksa veritabanına kayıt işlemini gerçekleştireceğiz.
Access veritabanımızın ismi vtogrenci
Tablo ismi ogrenci
Access veritabanı:
Form Tasarımı:
C# Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; namespace tc_kontrol { public partial class Form1 : Form { OleDbConnection baglanti; OleDbCommand komut; OleDbDataAdapter da; public Form1() { InitializeComponent(); } void KisiListele() { baglanti = new OleDbConnection("Provider=Microsoft.ACE.OleDb.12.0;Data Source=vtogrenci.accdb"); baglanti.Open(); da = new OleDbDataAdapter("Select *From ogrenci", baglanti); DataTable tablo = new DataTable(); da.Fill(tablo); dataGridView1.DataSource = tablo; baglanti.Close(); } private void Form1_Load(object sender, EventArgs e) { KisiListele(); } public int VarMi(string aranan) { int sonuc; baglanti = new OleDbConnection("Provider=Microsoft.ACE.OleDb.12.0;Data Source=vtogrenci.accdb"); string sorgu = "Select COUNT(tc) from ogrenci WHERE tc='"+aranan+"'"; komut = new OleDbCommand(sorgu, baglanti); baglanti.Open(); sonuc=Convert.ToInt32(komut.ExecuteScalar()); baglanti.Close(); return sonuc; } private void button1_Click(object sender, EventArgs e) { if (VarMi(txtTc.Text) != 0) { MessageBox.Show("Bu TC Numara ile daha önce kayıt yapılmış"); } else { string sorgu = "Insert into ogrenci (tc,ad,soyad) values (@tc,@ad,@soyad)"; komut = new OleDbCommand(sorgu, baglanti); komut.Parameters.AddWithValue("@tc", Convert.ToInt32(txtTc.Text)); komut.Parameters.AddWithValue("@ad", txtAd.Text); komut.Parameters.AddWithValue("@soyad", txtSoyad.Text); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); KisiListele(); } } } } |
güzel bir ayrıntı
komut.Parameters.AddWithValue(“@tc”, Convert.ToInt32(txtTc.Text));
BURADA CONVERT ETMEYE GEREK YOKTUR.