C# ile Sql Server’ da oluşturulmuş olan bir veritabanına bağlantı işlemlerini daha önceki yazılarımızda paylaşmıştık. Bu yazımızda da yine C# ile Sql veritabanı bağlantısı oluşturacağız. Önceki konudan farklı olarak bu defa Parametre Kullanarak Kayıt ekleme, Kayıt Silme ve Güncelleme işlemlerini gerçekleştireceğiz.Örneğimizde dbOkul isimli database’i ve Ogrenci isimli tabloyu kullanacağız.
Ayrıca C# dilinde yazılmış daha fazla örnek ve konular için C# Dersleri yazısını yada sağ üstte bulunan site içinde arama panelini kullanabilirsiniz.
Tablo tasarımımız yukarıdaki şekilde olacaktır. Veritabanını tamamladıktan sonra şimdide Form görüntüsüne geçelim.
Kodlarımıza geçmeden önce yapılacakları açıklayalım. Öncelikle listeleme işlemini Form açıldığında, Ekleme işlemi yapıldığında, Silme işlemi yapıldığında ve Güncelleme işlemi yapıldığında yapacağımızdan dolayı bir metot içerisinde oluşturacağız. Böylelikle aynı kodları tekrar tekrar yazmak zorunda kalmayacağız.
Ekle butonunu Parametre kullanarak kayıt ekleme işlemi için;
Sil butonunu Parametre kullanarak kayıt silme işlemi için;
Güncelleme butonunu Parametre kullanarak kayıt değiştirme işlemi için kullanacağız.
Datagridview CellEnter olayına yazacağımız kodlar ise Datagrid üzerinde herhangi bir satıra tıklandığında ilgili satırın uygun TextBox’ lara aktarılmasını sağlayacak.
Ayrıca Datagridview’ in SelectioMode özelliğini FullRowSelect olarak ayarlayacağız.
Kodlarımızı yazmaya başlıyoruz. Öncelikle
1 2 3 | using System.Data.SqlClient; |
ekliyoruz.
Daha sonra bağlantı işlemleri için gerekli nesneleri public olarak tanımlıyoruz.
1 2 3 4 5 | SqlConnection baglanti; SqlCommand komut; SqlDataAdapter da; |
Listeleme işlemini gerçekleştirecek “Listele” isimli metodumuzu oluşturuyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 | void Listele() { baglanti = new SqlConnection("server=.; Initial Catalog=dbokul;Integrated Security=SSPI"); baglanti.Open(); da = new SqlDataAdapter("Select *From Ogrenci", baglanti); DataTable tablo = new DataTable(); da.Fill(tablo); dataGridView1.DataSource = tablo; baglanti.Close(); } |
Form açıldığında Listele isimli metodumuzu çağırıyoruz.
1 2 3 4 5 6 | private void Form1_Load(object sender, EventArgs e) { Listele(); } |
Ekle Butonu için;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private void button1_Click(object sender, EventArgs e) { string sorgu = "Insert into Ogrenci (numara,ad,soyad,telefon) values (@no,@ad,@soyad,@tel)"; 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("@tel", textBox4.Text); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); Listele(); } |
Sil butonu için;
1 2 3 4 5 6 7 8 9 10 11 12 | private void button2_Click(object sender, EventArgs e) { string sorgu = "Delete From Ogrenci Where numara=@no"; komut = new SqlCommand(sorgu, baglanti); komut.Parameters.AddWithValue("@no", dataGridView1.CurrentRow.Cells[0].Value); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); Listele(); } |
Güncelle butonu için;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private void button3_Click(object sender, EventArgs e) { string sorgu = "Update Ogrenci Set Ad=@ad,Soyad=@soyad,Telefon=@tel Where Numara=@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("@tel", textBox4.Text); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); Listele(); } |
ve son olarak DataGridview’ de tıklanan sütunların Textboxlar’da görüntülenmesi için;
1 2 3 4 5 6 7 8 9 | 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(); textBox4.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString(); } |
kodlarını yazıyoruz.
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 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.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace sqlParametre { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SqlConnection baglanti; SqlCommand komut; SqlDataAdapter da; void Listele() { baglanti = new SqlConnection("server=.; Initial Catalog=dbokul;Integrated Security=SSPI"); baglanti.Open(); da = new SqlDataAdapter("Select *From Ogrenci", baglanti); DataTable tablo = new DataTable(); da.Fill(tablo); dataGridView1.DataSource = tablo; baglanti.Close(); } private void Form1_Load(object sender, EventArgs e) { Listele(); } private void button1_Click(object sender, EventArgs e) { string sorgu = "Insert into Ogrenci (numara,ad,soyad,telefon) values (@no,@ad,@soyad,@tel)"; 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("@tel", textBox4.Text); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); Listele(); } private void button2_Click(object sender, EventArgs e) { string sorgu = "Delete From Ogrenci Where numara=@no"; komut = new SqlCommand(sorgu, baglanti); komut.Parameters.AddWithValue("@no", dataGridView1.CurrentRow.Cells[0].Value); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); Listele(); } private void button3_Click(object sender, EventArgs e) { string sorgu = "Update Ogrenci Set Ad=@ad,Soyad=@soyad,Telefon=@tel Where Numara=@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("@tel", textBox4.Text); baglanti.Open(); komut.ExecuteNonQuery(); baglanti.Close(); Listele(); } 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(); textBox4.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString(); } } } |
Örneğimiz üzerinde DataView sınıfının RowFilter özelliğini kullanarak arama yapmayı gösteren örneğe buradan ulaşabilirsiniz.
Ayrıca C# dilinde yazılmış daha fazla örnek ve konular için C# Dersleri yazısını yada sağ üstte bulunan site içinde arama panelini kullanabilirsiniz.
Hocam birçok vide izledim ama nafile. Öğrenemedim. Tebrikler. Güzel anlatmışsınız.
Hocam birçok vide izledim ama nafile. Öğrenemedim. Tebrikler. Güzel anlatmışsınız.
Nesne başvurusu bir nesnenin örneğine ayarlanmadı. Diye hata veriyor ne yapmalıyım?
Elinize emeğinize sağlık…
Dim komut As New OleDbCommand(“SELECT*FROM rezervasyon WHERE workflow_numarasi= @tabloadi.workflow_numarasi “, baglanti)
komut.Parameters.AddWithValue(“@tabloadi”, ComboBox1.Text)
Hocam merhaba,
combobox’tan bir tablo adı seçiyorum. Seçtiğim tabloda workflow_numarasi diye tanımladığım bir değer var ve ben yukarıdaki gibi rezervasyon tablomdaki workflownumarası ile eşlessin istiyorum. Parametre olarak combobox’tan seçtiğim tablonun adını @tabloadi diye yaptım. Ancak oradan seçilen tablonun içindeki bir sütunu(workflow_numarasini) nasıl SELECT*FROM ifadesinin içine yerleştireceğimi bir türlü bulamadım. Yardımcı olursanız çok sevinirim.
Kolay gelsin…
Combobox’ ın value değerini kullanabilirsiniz. Fikir vermesi açısından aşağıdaki konuyu inceleyebilirsiniz.
http://www.yazilimkodlama.com/c-2/c-access-iliskili-tablodan-veri-cekme-il-ilce-veritabani/
Label1.Text = “Hoşgeldiniz ” + Session[“ad”].ToString() + ” ” + Session[“soyad”].ToString();
“Provider=Microsoft.Ace.Oledb.12.0; Data Source=” + HttpContext.Current.Server.MapPath(“vb/veri.accdb”));
S.a hocam benim bu konu ile ilgili bir kaç sorum var çok acil hocam pazartesi sınavım var bana geri dönüş yapar mısınız formdaki arkadaşlardan da yardım bekliyorum açıkçası
Sorularınız nedir?
Hocam gmailinize yolladım soruları
Mail ulaşmadı. yazilimbilisimnet@gmail.com yada ahmet.cansever@yandex.com.tr olarak tekrar yollarsınız.
valla hoca helal olsun kaç tane veritabanı bağlantı videosu izlediysem ve proje ilerletmeye çalıştıysam hepsi kafamı karıştırmış ve işlemleri çok karmaşık hale getirmişti bu parametrelerle bağlantı olayı çok temiz, kolay ve sanıyorum en efektif olanı harika az ve öz bu kadar iyi anlatılırdı teşekkürler gerçekten
Teşekkürler. Faydalı olduğuna sevindim.
hocam lütfen bana mail atarmısınız mail adresim fbmami@hotmail.com size ulaşamadım faceniz yok
ahmet.cansever@yandex.com.tr den ulasabilirsiniz.
string sorgu = “Insert into Makale2 (makaleBaslik,makaleOzet,makaleIcerik,kategoriID,makaleResim) values (@makaleBaslik,@makaleOzet,@makaleOzet,@kategoriID,@makaleResim)”;
SqlCommand komut = new SqlCommand(sorgu, baglanti);
komut.Parameters.AddWithValue(“@makaleBaslik”, txt_mbaslik.Text);
komut.Parameters.AddWithValue(“@makaleOzet”, txt_mozet.Text);
komut.Parameters.AddWithValue(“@makaleIcerik”, txt_micerik.Text);
komut.Parameters.AddWithValue(“@kategoriID”, ddl_kategori.SelectedValue);
komut.Parameters.AddWithValue(“@makaleResim”, /resimler/+fu_slider.FileName);
su en alt makale resim kısmında resim eklerken ekleme yapmıyor onu nasıl yapıcağımızı soruyorum hocam
komut.Parameters.AddWithValue(“@makaleResim”, “/resimler/”+fu_slider.FileName);
şeklinde denermisin.
Veritabanına resim yolu eklemeyi anlatan örnek
http://www.yazilimkodlama.com/c-2/c-veritabanina-resim-yolu-ekleme-ve-pictureboxta-gosterme/
resim nasıl ekliyoz peki