C# Sql Server Parametreli Sorgu Çalıştırma

C# Sql Server Parametreli Sorgu Çalıştırma

C# Sql Server Parametreli Sorgu Çalıştırma

  5 dakika Okuma Süresi
Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde Sql Server veritabanına parametreli bir şekilde sorgu gönderecek ve çalıştıracağız. Hadi başlayalım !

Bir önceki dersimizde Sql Server'a parametresiz sorgu göndermiştik yani örneğin veri eklerken eklenecek verileri biz gönderiyorduk yani veriler sabit idi ama ya verileri kullanıcının girdiği TextBoxlar'dan almak istersek ne olacak ? İşte onu da bu yazımızda anlatacağız.
Parametresiz sorgu gönderme yazımıza ulaşmak için buraya tıklayınız.

Öncelikle gerekli olan System.Data.SqlClient kütüphanesini projemize ekleyelim. Bunun için Nuget paket yöneticisini açıp
install-package system.data.sqlclient
komutunu girelim. Bu komut sayesinde Nuget, ilgili kütüphaneyi indirecek, projeye ekleyecek ve kullanılabilir hâle getirecektir.
Veritabanına sorgu gönderebilmek için önce bağlantı kurmalı sonra sorgumuzu belirtmeli ve son olarakta sorguyu çalıştırmalıyız.
Şimdi öncelikle bağlantımızı oluşturalım. Bunun için SqlConnection sınıfını kullanacak ve bu sınıfın yeni bir nesnesini türeteceğiz. Constructor metod ise string tipte bağlantı bilgilerini istiyor bizden.
SqlConnection baglanti = new SqlConnection("Data Source=localhost\SQLEXPRESS; Initial Catalog=deneme; Integrated Security=true");
Burada belirttiğimiz Data Source ile veritabanı sunucusunu, Initial Catalog ile veritabanı adını ve Integrated Security ile de güvenli bağlantı kuracağımızı bildirdik.
Bağlantı nesnesini oluşturduk, artık Sql Server'a bağlantı kurabilir ve istediğimiz sorguları çalıştırabiliriz.

Bağlantıyı oluşturduk fakat bu bağlantıyı açıp veritabanına bağlanmamız gerekiyor, aksi takdirde bağlantı yapılmayacaktır. Bağlantıyı açmak için
baglanti.Open();
kod satırını kullanacağız.

Örneğin ogrenciler isimli bir tablo ve bu tabloda da ogrenciAdi, numara, sinifi sütunları olduğunu varsayalım.
Ayrıca formumuzda da bu verileri alabilmek için 3 tane TextBox ekli olsun. ogrenciAdi verisini ogrenciAdiTextBox, numara verisini numaraTextBox ve sinifi verisini ise sinifiTextBox isimli TextBoxlar'dan alalım. Ayrıca gonder isminde de bir tane Button ekleyelim, bu butona tıklayınca girilen verileri ogrenciler tablosuna ekleyelim. Formun tasarımı şöyle olmalı;
C# Sql Server Parametreli Sorgu Çalıştırma

Bağlantıyı oluşturduk ve açtık, şimdi de sorgu gönderelim. Sorgu gönderebilmek için yine System.Data.SqlClient kütüphanesi altında bulunan SqlCommand sınıfını kullanacağız. Kullanabilmek için ise her zaman olduğu gibi (:)) yeni bir nesnesini türetmemiz gerekiyor. Bu sınıfın constructor metodu string tipte sorgu cümlesi ve SqlConnection tipinde bağlantı nesnesi olmak üzere 2 parametre alıyor.
Biz sorgu olarak veri ekleme yapacağız ve eklenecek verileri dışarıdan alacağımız için sorgu cümlemizi biraz değiştirecek, eklenecek verileri ilk esnada girmeyeceğiz ama sonrada parametre olarak göndereceğiz.
Nasıl yapacağız derseniz, örnek bi kod yazalım;

void kaydet_Click(object sender, EventArgs e)
{
    SqlCommand komut = new SqlCommand("insert into ogrenciler(ogrenciAdi, sinifi, numara) values(@p1, @p2, @p3)", baglanti);
    komut.Parameters.AddWithValue("@p1", ogrenciAdiTextBox.Text);
    komut.Parameters.AddWithValue("@p2", sinifiTextBox.Text);
    komut.Parameters.AddWithValue("@p3", numaraTextBox.Text);
}
Bu kodda da gördüğünüz üzere ogrenciAdi sütununa denk gelen veriyi @p1, sinifi sütununa denk gelen veriyi @p2 ve numara sütununa denk gelen veriyi ise @p3 olarak belirttik fakat sonrada komut.Parameters.AddWithValue fonksiyonu ile bu verileri gerçek veriler ile değiştirdik.

İşte sizde bu şekilde dışarıdan veri alarak veritabanına istediğiniz sorguları oluşturabilirsiniz.
E sorguyu oluşturduk ama bu sorgunun veritabanına gönderilip çalıştırılacağı anlamına gelmiyor ne yazık ki, sorguyu veritabanına gönderip çalıştıran ExecuteNonQuery() fonksiyonunu da kullanmalıyız.
komut.ExecuteNonQuery()
kod satırı ile bu işi de hallettik.

Buraya kadar veritabanına bağlantıyı oluşturup açtık, sorguyu oluşturup veritabanına gönderdik ama bağlantımız açık kaldı ve bellekte ayak ayak üstüne atmış oturuyorlar. Onu da kapatalım da bellekteki yerinden edelim :)
Açmak için Open() fonksiyonunu kullanmıştık, kapatmak için ise Close() fonksiyonunu kullanacağız.
baglanti.Close();
Bu sayede bağlantıyı da kapattık ve tüm işlemlerimizi hallettik, sorgumuz veritabanına gönderilip çalıştırıldı. Veritabanına girip kontrol ederseniz verinin eklendiğini göreceksiniz :)

Bu dersimizde bu kadardı, yazdığımız tüm kodları daha toplu olması için aşağıya bırakıyorum;

SqlConnection baglanti = new SqlConnection("Data Source=localhost\SQLEXPRESS; Initial Catalog=deneme; Integrated Security=true");
void kaydet_Click(object sender, EventArgs e)
{
    baglanti.Open();
    SqlCommand komut = new SqlCommand("insert into ogrenciler(ogrenciAdi, sinifi, numara) values(@p1, @p2, @p3)", baglanti);
    komut.Parameters.AddWithValue("@p1", ogrenciAdiTextBox.Text);
    komut.Parameters.AddWithValue("@p2", sinifiTextBox.Text);
    komut.Parameters.AddWithValue("@p3", numaraTextBox.Text);
    komut.ExecuteNonQuery();
    baglanti.Close();
}
Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.


  • İçeriği Paylaş:

İÇERİĞİ DEĞERLENDİR

Toplam Değerlendirme Sayısı: 0
Toplam Değerlendirme: 0 / 5

Cevap Yaz