C# Veritabanında Tekrar Kaydı Engelleme

sdkbyrm

webmasterfrm
Üyelik Tarihi
23 Aralık 2020
Mesajlar
813
Beğeniler
1
Ticaret: 0 / 0 / 0
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.

csharp-kayit-varmi-4.jpg


Access veritabanımızın ismi vtogrenci

Tablo ismi ogrenci

Access veritabanı:


csharp-kayit-varmi-1.jpg


csharp-kayit-varmi-2.jpg




Form Tasarımı:

csharp-kayit-varmi-3.jpg




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();
}

}
}
}
 
Üst