Uygulamalarımızı yazarken bazı zamanlar yaptığımız işlem sonucunda veritabanında herhangi bir kayıt etkilendi mi, etkilenmedi mi bilmek isteriz. Bunun için kimimiz 1-0 gibi değerler döndürürüz. Veya return anahtar kelimesi ile sql den geriye değer döndürürüz. Bu işlemlerin kökten çözümü ise ExecuteNonQuery metodu. Bu metodu kullanarak veritabanında bir işlem yaptığımızda bize sqlde kaç kayıtın etkilendiğini geri dönecektir. Siz de bu metodun geri dönüş değerini bir değişken içerisine alıp hareket ederseniz hem kod kalabalığı yapmamış oluruz, hem de o değerli vaktimizi boşa harcamamış oluruz.
Aşağıya yazdığım örneklerde birinde silme işlemi, diğerinde ise kayıt güncelleme işlemi yapılmaktadır. Sırasıyla birinci örnekte silme işlemi yapıldıktan sonra veritabanından kaç kayıt silindiğini yakalıyorum. Diğer örnekte ise veritabanında güncelleme yapıyorum ve güncellenen kayıt sayısını yakalıyorum.
public int OgrenciSil(int no)
{
SqlConnection con = new SqlConnection("Data Source.; Database=ogrenci; user=sa; password=123");
string sorgu = "delete from Ogrenci where No=@no";
SqlCommand cmd = new SqlCommand(sorgu, con);
cmd.Parameters.AddWithValue("@no", no);
con.Open();
int silinenSayi = cmd.ExecuteNonQuery();
con.Close();
return silinenSayi;
}
public int OgrenciOrtalamaGuncelle(int no, int yeniOrtalama)
{
SqlConnection con = new SqlConnection("Data Source.; Database=ogrenci; user=sa; password=123");
string sorgu = "update ogrenci set Ortalama=@yeniOrt where No=@no";
SqlCommand cmd = new SqlCommand(sorgu,con);
cmd.Parameters.AddWithValue("@yeniOrt", yeniOrtalama);
cmd.Parameters.AddWithValue("@no", no);
con.Open();
int guncellenenSayisi= cmd.ExecuteNonQuery();
con.Close();
return guncellenenSayisi;
}