lostyazilim
tr.link

C# Hep aynı değeri çekiyor?

18 Mesajlar 2.512 Okunma
lstbozum
tr.link

yetkilibiri yetkilibiri Yazılım Uzmanı Kullanıcı
  • Üyelik 28.05.2017
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad E** Y**
  • Mesajlar 107
  • Beğeniler 41 / 41
  • Ticaret 2, (%100)

yetkilibiri adlı üyeden alıntı

Bağlantıyı program açılırken aç kapatana kadar açık kalsın.
Yoksa her butona bastığında yeni bağlantı oluşturur.

Form Load Eventine taşı: baglan.Open();
Form Closing Eventine taşı: baglan.Close();

baglan değişkenini de butonun altında tanımladıysan globale alman gerekir.


Roycolt
Böyle yap demiştim ama sen bağlantıyı buton click eventinde açıp kapatıyorsun halen..
 

 

wmaraci
reklam

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
EK bilgi olsun ;


Bağlantıyı uzun süre açık tutmak kötü bir pratiktir.

Kullandığınız Data provider(Sql data client) üzerinde zten client taraflı connection pool yapıyor + sql server tarafındada bu tür connection pooling işlemleri yapıyor.

Makul olan ;

db üzerinde yapılan işin kısa sürmesi (timeout düşük işlemler olması) önem gösterir, bu noktada aç/kapa işleminin bir maliyeti yoktur.

Db connection aç/kapa işide zaten transaction'ı nasıl yönettiğinizle alakalı eğer her seferinde yeni bir transaction açmıyorsanız zaten client provider/sql server üzerinde aslında hali hazır açık olan connection 'ı kullanırsınız.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

yetkilibiri yetkilibiri Yazılım Uzmanı Kullanıcı
  • Üyelik 28.05.2017
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad E** Y**
  • Mesajlar 107
  • Beğeniler 41 / 41
  • Ticaret 2, (%100)
YazılımMimarı
Burada arkadaş yeni C# öğreniyor ve SQL Server değil AccessDB kullanıyor.
Aynı anda tek uygulamanın bağlandığı basit bir soru cevap formu hazırlıyor.
Yüksek transactionların olduğu bir durum değil.

Dolayısla uygulamadan çıkana kadar bağlantının açık kalmasında hiç bir sakınca yoktur.

Roycolt

Roycolt adlı üyeden alıntı



while (oku.Read())
{
label1.Text = (oku["soruBaslik"].ToString());
radioButton1.Text = (oku["A"].ToString());
radioButton2.Text = (oku["B"].ToString());
radioButton3.Text = (oku["C"].ToString());
radioButton4.Text = (oku["D"].ToString());
}



Buradaki while (oku.Read()) olan kısmı if (oku.HasRows) olarak değiştir.
Aksi durumda okuyabildiği kadar demektir. O da zaten o dersID den bütün soruları okuması demek.

Kolay gelsin..
 

 

Roycolt Roycolt Let's begin! Kullanıcı
  • Üyelik 27.04.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Freelance
  • Konum İstanbul Avrupa
  • Ad Soyad A** K**
  • Mesajlar 1304
  • Beğeniler 252 / 380
  • Ticaret 28, (%100)
yetkilibiri Hocam sizin dediğiniz gibi yaptım ancak formclosing eventi kısmında takıldım. Araştırdım ancak bulamadım. O yüzden tekrar eski haline getirdim.
 

 

wmaraci
wmaraci

yetkilibiri yetkilibiri Yazılım Uzmanı Kullanıcı
  • Üyelik 28.05.2017
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad E** Y**
  • Mesajlar 107
  • Beğeniler 41 / 41
  • Ticaret 2, (%100)
Roycolt Kaç gündür uğraşıyorsun.
TeamViewer ilet özelden. Bakalım 2 dakika..
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
Kötü pratik kötü pratiktir..

sakıncası olup, olmaması mesele değil, nasıl öğrenirsen öyle gidersin ;)

iyi pratikler edinin, bunun faydasını görürsünüz.
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)

Roycolt Roycolt Let's begin! Kullanıcı
  • Üyelik 27.04.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Freelance
  • Konum İstanbul Avrupa
  • Ad Soyad A** K**
  • Mesajlar 1304
  • Beğeniler 252 / 380
  • Ticaret 28, (%100)
Sağolsun yetkilibiri arkadaşımız sorunumu çözdü ve program sıkıntısız bir şekilde çalışıyor. Öncelikle kendisine olmak üzere yardımda bulunan tüm arkadaşlara sonsuz teşekkürlerimi sunarım :)
 

 

yetkilibiri yetkilibiri Yazılım Uzmanı Kullanıcı
  • Üyelik 28.05.2017
  • Yaş/Cinsiyet 33 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad E** Y**
  • Mesajlar 107
  • Beğeniler 41 / 41
  • Ticaret 2, (%100)
Kötü pratik filan değil. Buradaki durumu iyi analiz etseydin her sorgu için bağlantı açıp kapatmaya gerek olmadığını görürdün. Local Access DB ye tek kullanıcı bağlanıyor alt tarafı.
Programın tek amacı butona basıldığında rastgele soru getirmek.
Bu çaptaki bir program için her butona basıldığında bağlantı açıp kapatmaya gerek yoktur.

Ayrıca ORDER BY rnd(soruID) yeni bağlantıda sürekli aynı soruyu verebilir.
Roycolt

kişi bu mesajı beğendi.

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al