Oncelikle sql'e erisebilmemiz icin namespace'mizi ufak bir ekleme yapmamiz gerekecek. Bu ekleme ;
using System.Data.SqlClient;
Namespace'mizi de ekledigimize gore artik kimse mani olamaz sql'e varmamiza. Oncelikle baglantiyi saglayalim;
SqlConnection conn = new SqlConnection(@"integrated security=true;server=Ergin-PC\SQLExpress2005;database=OyunDB");
Ufak bir not, tirnaktan onceki @ isareti, server ismindeki '\' isaretine C#in hata vermesini engellemek icin konulan isarettir. veya '\\' yaparak da cozebiliriz tercih sizin.
Artik sql'e baglanti icin bi engel kalmadiysa cilginlar gibi sql komutu yazabiliriz.
SqlCommand cmd = new SqlCommand( "select count(*) from Oyun",conn);
Her sey hazir. Baglanti yolumuzu belirledik, sifre, isim sorunumuz yok. Satirimizi yazdik. Sadece birinin sql'i acmasi gerekiyor.
conn.Open();
An itibariyle Sql icerisindeyiz. Artik yukarida yazdigimiz sql komutuyla birlikte istedigimiz yere getirtebiliriz degerlerimizi.
SqlDataReader sdr = cmd.ExecuteReader();while(sdr.Read()){lstOyun.Items.Add(sdr["Ad"]); // 0. kolonu gosterir.}
-Listbox'in items'ina gelen degeri atiyoruz bu kodda. Birden fazla satir etkilendiginden SqlDataReader kullaniyoruz. Tek hucre etkilenseydi ExecuteScalar isimizi gorecekti. Eger bu islemlerden kac satirin etkilendigini ogrenmek istiyorsak ExecuteNonQuery yazmamiz gerekecekti.
-Kisaca while dongusunu anlatmak gerekirse de, debug esnasinda programimiz sdr.Read() ile karsilastiginda, yani bir alt satira gectiginde deger yoksa, yani 'false' gonderene kadar donguyu calistir demek oluyor.Bu ornekte diyelim ki 5 satir gelsin. ilk while'a girdi ilk satir yazildi, ikinci satira gecis sirasinda , sdr.Read()==true oldugundan while'i bir kere daha donduruyor, taa ki 5. satir bittiginde, sdr.Read()==false artik bizim icin ve donguden cikiyoruz.
Son olarak unutmayin, unutturmayin. Actigimiz ne varsa hepsini kapatiyoruz :)
sdr.Close();conn.Close();
Kapatmasak nolur artislik yapma diyenler icin, programiniz burda sonlaniyorsa sorun olmaz, bosa sql calisir ama hata vermez. Lakin, eger bu satirdan daha sonra tekrar baska classlarda vs. conn.open derseniz cort olur, kodunuz patlar. Bosa sql'e zulum etmemek adina isiniz bitince kapatiniz, nasil gormek istiyorsaniz oyle birakiniz.
0 yorum:
Yorum Gönder