C# SQL Server Veritabanı Bağlantısı (Select-İnsert-Update-Delete)

Konuyu Okuyanlar (0 kayıtlı üye )

sdkbyrm

olwα.ɴeт
Üyelik Tarihi
23 Aralık 2020
Mesajlar
813
Beğeniler
1
Puanı
3
Ticaret: 0 / 0 / 0
Bu yazımızda C# ile SQL Server bağlantısı kurarak temel veritabanı işlemlerini, DataGridView’ e veri çekme (Select), Kayıt ekleme (Insert), Kayıt Silme (Delete) ve Kayıt Güncelleme (Update) gerçekleştireceğiz. Ayrıca DataGridView üstünde tıklanan satırdaki verilerin textBox’ lara ve DateTimePicker içine çekilmesini gerçekleştireceğiz.


Ayrıca yazının sonunda ikinci örneğe ait veritabanı bağlantısını gösteren video da bulunmaktadır.

C# SQL Server veritabanı bağlantısı için 2 örnek gerçekleştireceğiz. İlk örneğimiz için SQL Server da “okul” veritabanındaki “ogrenci” “tablosunu kullanacağız.

sql_baglanti_vt


Tablomuzu yukarıdaki şekilde oluşturduktan sonra formumuzu da aşağıdaki şekilde oluşturalım.

SQL_BAGLANTI



Kodlarımızı inceleyelim.

Sql server bağlantısı için;


1
2
3

using System.Data.SqlClient;
eklememiz gerekiyor.

Öncelikle SqlConnection, SqlDataAdapter,SqlCommand ve Dataset nesnemizi tekrar tekrar tanımlamamak için Public olarak tanımlıyoruz.

Verilerimizi çekme işlemini de bir kaç yerde kullanacağımız için griddoldur isimli bir metot‘ ta tanımlıyoruz.


1
2
3
4
5
6
7
8
9
10
11
12

void griddoldur()
{
con = new SqlConnection("server=.; Initial Catalog=okul;Integrated Security=SSPI");
da = new SqlDataAdapter("Select *From ogrenci", con);
ds = new DataSet();
con.Open();
da.Fill(ds, "ogrenci");
dataGridView1.DataSource = ds.Tables["ogrenci"];
con.Close();
}
Oluşturmuş olduğumuz bu metodu Form ilk açıldığında çalıştırmak için Form_Load olayına ekliyoruz. Bu sayede Form açılır açılmaz Verilerimizin DataGridView‘ de görüntülenmesi sağlanacaktır.


1
2
3
4
5
6

private void Form1_Load(object sender, EventArgs e)
{
griddoldur();
}
Ekle butonuna bastığımızda Textbox‘ lara girilen verilerin Sql tablomuza kayıt edilmesi için ise;


1
2
3
4
5
6
7
8
9
10
11
12

private void button1_Click(object sender, EventArgs e) // Ekle butonu
{
cmd = new SqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "insert into ogrenci(ogrenci_no,ogrenci_ad,ogrenci_soyad,ogrenci_sehir) values (" + textBox1.Text + ",'" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')";
cmd.ExecuteNonQuery(); //www.yazilimkodlama.com
con.Close();
griddoldur();
}
kodlarını ekliyoruz.

Güncelle butonumuz öğrenci numarasına göre Ad,soyad ve şehir bilgisinin güncellenmesini sağlayacaktır. Bu işlemler için Güncelle butonuna çift tıklayarak;


1
2
3
4
5
6
7
8
9
10
11
12
13

private void button3_Click(object sender,EventArgs e)//GÜNCELLE BUTONU
{
cmd =new SqlCommand();
con.Open();
cmd.Connection= con;
cmd.CommandText="update ogrenci set ogrenci_ad='"+ textBox2.Text+"',ogrenci_soyad='"+ textBox3.Text+"',ogrenci_sehir='"+ textBox4.Text+"' where ogrenci_no="+textBox1.Text+"";
cmd.ExecuteNonQuery();
con.Close();
griddoldur();

}
kodlarını yazıyoruz.
Son olarak Sil butonunu ayarlıyoruz. Girilen öğrenci numarasına göre kaydı silmek için


1
2
3
4
5
6
7
8
9
10
11
12
13

private void button4_Click(object sender,EventArgs e)//SİLME BUTONU
{
cmd =new SqlCommand();
con.Open();
cmd.Connection= con;
cmd.CommandText="delete from ogrenci where ogrenci_no="+textBox1.Text+"";
cmd.ExecuteNonQuery();
con.Close();
griddoldur();
}
}
kodlarını yazıyoruz.
Artık programımız Select, Insert, Update, Delete gibi temel veritabanı işlemlerini gerçekleştirecektir.

Kodlarımızın tamamlanmış hali aşağıdaki gibi olacaktır.


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

using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient; //Sql bağlantısı için ekliyoruz.

namespace sql_baglanti
{
public partial class Form1 : Form www.yazilimkodlama.com
{
public Form1()
{
InitializeComponent();
}
SqlConnection con;
SqlDataAdapter da;
SqlCommand cmd;
DataSet ds;

void griddoldur()
{
con = new SqlConnection("server=.; Initial Catalog=okul;Integrated Security=SSPI");
da = new SqlDataAdapter("Select *From ogrenci", con);
ds = new DataSet();
con.Open();
da.Fill(ds, "ogrenci");
dataGridView1.DataSource = ds.Tables["ogrenci"];
con.Close();
}

private void Form1_Load(object sender, EventArgs e)
{
griddoldur();
}

private void button1_Click(object sender, EventArgs e) // Ekle butonu
{
cmd = new SqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "insert into ogrenci(ogrenci_no,ogrenci_ad,ogrenci_soyad,ogrenci_sehir) values (" + textBox1.Text + ",'" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')";
cmd.ExecuteNonQuery();
con.Close();
griddoldur();
}

private void button3_Click(object sender,EventArgs e)//GÜNCELLE BUTONU
{
cmd =new SqlCommand();
con.Open();
cmd.Connection= con;
cmd.CommandText="update ogrenci set ogrenci_ad='"+ textBox2.Text+"',ogrenci_soyad='"+ textBox3.Text+"',ogrenci_sehir='"+ textBox4.Text+"' where ogrenci_no="+textBox1.Text+"";
cmd.ExecuteNonQuery();
con.Close();
griddoldur();

}

private void button4_Click(object sender,EventArgs e)//SİLME BUTONU
{
cmd =new SqlCommand();
con.Open();
cmd.Connection= con;
cmd.CommandText="delete from ogrenci where ogrenci_no="+textBox1.Text+"";
cmd.ExecuteNonQuery();
con.Close();
griddoldur();
}
}
Örnek 2: Bu örneğimizde yukarıdaki örnekten farklı olarak veritabanı işlemlerini (Ekle -Sil – Güncelle ) Parametre kullanarak gerçekleştireceğiz. Ayrıca datagridview’ e veritabanından çekmiş olduğumuz tarih bulunan tarih bilgisinin dateTimePicker‘ da görüntülenmesini sağlayacağız.
Örneğimizde kullanacağımız veritabanımızın adı “ticaret” ve tablomuzun adı “musteri” olacak.
Kullanacağımız musteri tablosu aşağıdaki gibi olacaktır. örneğimizde “musteri” tablosunda bulunan “mno” otomatik sayı olarak ayarlandığını belirtelim.
vt1

vt2

Veritabanımızı ve tablomuzu tasarladıktan sonra Form tasarımına geçelim.

form_Sql_1

Form tasarımını oluşturduktan sonra Datagridview kontrolünün SelectionMode özelliğini FullRowSelect olarak ayarlıyoruz. Örneğimizde Liste işlemleri için ilk örneğimizde olduğu gibi bir Metot tanımlaması yapacağız. Datagridview’ e tıklandığında verilerin ilgili konrollere getirilmesi için DatagridView’ in Cell_Enter olayını kullanacağız. Datagridview’ de yer alan tarih bilgisinin Datetimepicker kontrolüne bağlanmasınıda bu yöntemle gerçekleştireceğiz. Ekle (Insert), Sil (Delete) ve Güncelleme (Update) işlemleri için söylediğimiz gibi yukarıdaki örnekten farklı olarak parametre kullanımını uygulayacağız.

Kodlarımıza geçmeden önce;
Sql server bağlantısı için;


1
2
3

using System.Data.SqlClient;
eklememiz gerektiğini hatırlatalım.

Kodlarımızın tamamı şu şekilde olacaktır.


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
83
84
85
86
87
88
89
90
91
92
93

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.SqlClient;

namespace ybSqlveri
{
public partial class Form1 : Form
{
SqlConnection baglanti;
SqlCommand komut;
SqlDataAdapter da;


public Form1()
{
InitializeComponent();
}

void MusteriGetir()
{
baglanti = new SqlConnection("server=.; Initial Catalog=ticaret;Integrated Security=SSPI");
baglanti.Open();
da = new SqlDataAdapter("Select *From musteri", baglanti);
DataTable tablo = new DataTable();
da.Fill(tablo);
dataGridView1.DataSource = tablo;
baglanti.Close();
}

private void Form1_Load(object sender, EventArgs e)
{
MusteriGetir();
}

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
textBox1.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
textBox2.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
textBox3.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
dateTimePicker1.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
textBox4.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
}

private void button1_Click(object sender, EventArgs e)
{
string sorgu = "Insert into musteri (ad,soyad,dtarih,tel) values (@ad,@soyad,@dtarih,@tel)";
komut = new SqlCommand(sorgu, baglanti);
komut.Parameters.AddWithValue("@ad", textBox2.Text);
komut.Parameters.AddWithValue("@soyad", textBox3.Text);
komut.Parameters.AddWithValue("@dtarih", dateTimePicker1.Value);
komut.Parameters.AddWithValue("@tel", textBox4.Text);
baglanti.Open();
komut.ExecuteNonQuery();
baglanti.Close();
MusteriGetir();
}

private void button2_Click(object sender, EventArgs e)
{
string sorgu = "Delete From musteri Where mno=@no";
komut = new SqlCommand(sorgu, baglanti);
komut.Parameters.AddWithValue("@no", Convert.ToInt32(textBox1.Text));
baglanti.Open();
komut.ExecuteNonQuery();
baglanti.Close();
MusteriGetir();
}

private void button3_Click(object sender, EventArgs e)
{
string sorgu = "Update musteri Set ad=@ad,soyad=@soyad,dtarih=@dtarih,tel=@tel Where mno=@no";
komut = new SqlCommand(sorgu, baglanti);
komut.Parameters.AddWithValue("@no", Convert.ToInt32(textBox1.Text));
komut.Parameters.AddWithValue("@ad", textBox2.Text);
komut.Parameters.AddWithValue("@soyad", textBox3.Text);
komut.Parameters.AddWithValue("@dtarih", dateTimePicker1.Value);
komut.Parameters.AddWithValue("@tel", textBox4.Text);
baglanti.Open();
komut.ExecuteNonQuery();
baglanti.Close();
MusteriGetir();
}
}
}
 
Üst Alt