C# TextBox Kontrolü

P4R4G0N

Yeni üye
29 Nis 2020
16
1
textboxların SADECE BİRİSİNİN veya TAMAMININ DOLU olması koşulunun aranmasını istiyorum.if else yapısı kullanmak benimde kolayıma gelirdi fakat textbox sayısı artarsa nasıl hareket edeceğim?textboxların tamamı boş olursa uyarı mesajını veriyor.yalnız sadece birisi veyahut ikisi veyahut üçün dolu olduğu zaman sadece dolu olan textboxlara göre arama komutunu nasıl yapacağım?yapılan sorgunun sonuçları datagridview'e getiriliyor.textboxlardan biri DOLU diğerleri boş olduğunda kod çalışsın, ancak hepsi BOŞ ise uyarı versin.
 
Son düzenleme:

P4R4G0N

Yeni üye
29 Nis 2020
16
1
İyi diyorsunuz güzel diyorsunuz fakat bunu yine "else if" ile yapmak zorundasınız. "Eğer sadece biri dolu ise kod çalışsın" Mantığı anlatabilmişimdir umarım.
Hocam mantık doğru fakat 7 tane textbox olsa bunların farklı kombinasyonları oluşacak hepsini nasıl yazayım?Kodu ekliyeyim tekrar bakın isterseniz.
İyi diyorsunuz güzel diyorsunuz fakat bunu yine "else if" ile yapmak zorundasınız. "Eğer sadece biri dolu ise kod çalışsın" Mantığı anlatabilmişimdir umarım.
/if (tbxName.Text.Length==0 && tbxSurname.Text.Length==0)
//{
// Form3 form = new Form3();
// form.Show();
//}
//else if(tbxName.Text.Length > 0 && tbxSurname.Text.Length == 0 )
//{
// MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter("SELECT * FROM database WHERE ADI LIKE'%"+tbxName.Text+"%'",baglanti);
// mySqlDataAdapter.Fill(dt);

//}
//else if(tbxName.Text.Length == 0 && tbxSurname.Text.Length > 0 )
//{
// MySqlDataAdapter mySqlDataAdapter1 = new MySqlDataAdapter("SELECT * FROM database WHERE SOYADI LIKE'%" + tbxSurname.Text + "%'", baglanti);
// mySqlDataAdapter1.Fill(dt);
//}
2 textbox için 3 durum oluşuyor.
peki 7 textBox'um olsa kaç durum oluşacaktı?
textBoxName için 6 farklı durum
texBoxSurname için 6 farklı durum
textBoxBlaBla için 6 farklı durum
ben bunların hepsini yazmak istesem 6^n tane durum oluşacak farklı kombinasyonları da ele alırsak.
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,763
508
24
Praise The Fool
textboxların SADECE BİRİSİNİN veya TAMAMININ DOLU olması koşulunun aranmasını istiyorum.if else yapısı kullanmak benimde kolayıma gelirdi fakat textbox sayısı artarsa nasıl hareket edeceğim?textboxların tamamı boş olursa uyarı mesajını veriyor.yalnız sadece birisi veyahut ikisi veyahut üçün dolu olduğu zaman sadece dolu olan textboxlara göre arama komutunu nasıl yapacağım?yapılan sorgunun sonuçları datagridview'e getiriliyor.textboxlardan biri DOLU diğerleri boş olduğunda kod çalışsın, ancak hepsi BOŞ ise uyarı versin.
Güze soru. Tüm textboxlara ulaşabileceğin birkaç yöntem var. Her bir form nesnesindeki tüm araçlar(textbox, label vs..) controls diye geçer. Bulunduğun Form nesnesine this. ile erişip onun controls propertys'inin altındaki tüm control objelerine ulaştıktan sonra textbox olanları filtreleyip tek bir döngüde form'da bulunan tüm textbox ve gelebilecek textboxlar için de kolay bir kod yazmış olursun.

Direk form nesnesinden erişmek yerine tüm textboxları bir panel içine alıp onun içine de sadece textboxtları attığın bir senaryoda daha optimize ilerleyebilirsin.

Üçüncü bir seçenekde ise custom control yazabilirsin. Kendine ait Textbox sınıfından türemiş bir control yazarsın, böylece o nesneyi her kullandığında sınıfın ilgili kodları hazır gelir. Bu konuyu yazıya pek dökemedim custom control başlığını bir arat sen.


İyi diyorsunuz güzel diyorsunuz fakat bunu yine "else if" ile yapmak zorundasınız. "Eğer sadece biri dolu ise kod çalışsın" Mantığı anlatabilmişimdir umarım.
Kesinlikle doğru bir yaklaşım değil.
 

P4R4G0N

Yeni üye
29 Nis 2020
16
1
Güze soru. Tüm textboxlara ulaşabileceğin birkaç yöntem var. Her bir form nesnesindeki tüm araçlar(textbox, label vs..) controls diye geçer. Bulunduğun Form nesnesine this. ile erişip onun controls propertys'inin altındaki tüm control objelerine ulaştıktan sonra textbox olanları filtreleyip tek bir döngüde form'da bulunan tüm textbox ve gelebilecek textboxlar için de kolay bir kod yazmış olursun.

Direk form nesnesinden erişmek yerine tüm textboxları bir panel içine alıp onun içine de sadece textboxtları attığın bir senaryoda daha optimize ilerleyebilirsin.

Üçüncü bir seçenekde ise custom control yazabilirsin. Kendine ait Textbox sınıfından türemiş bir control yazarsın, böylece o nesneyi her kullandığında sınıfın ilgili kodları hazır gelir. Bu konuyu yazıya pek dökemedim custom control başlığını bir arat sen.


Kesinlikle doğru bir yaklaşım değil.
hocam çok teşekkürler illaki textboxlarıma bir giriş kontrolü sağlamam gerekmediğini öğrendim.SQL sorgumda AND bağlacını kullanarak sorgu sayısını maximum 3 olarak alabiliyorum.yeni bir MysqlDataAdapter nesnesi tanımlayıp sorgu sayımı ona göre düzenleyeceğim.Program performansında bir düşüş yaşanır mı eskisine ithafen sadece onu merak ediyorum.Ama yine de controls prop'unu öğrendiğim çok iyi oldu çok teşekkür ederim.
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,763
508
24
Praise The Fool
hocam çok teşekkürler illaki textboxlarıma bir giriş kontrolü sağlamam gerekmediğini öğrendim.SQL sorgumda AND bağlacını kullanarak sorgu sayısını maximum 3 olarak alabiliyorum.yeni bir MysqlDataAdapter nesnesi tanımlayıp sorgu sayımı ona göre düzenleyeceğim.Program performansında bir düşüş yaşanır mı eskisine ithafen sadece onu merak ediyorum.Ama yine de controls prop'unu öğrendiğim çok iyi oldu çok teşekkür ederim.
Optimizasyonu kodun tamamına hakim olmadak konuşmak zor, ne yazık ki bilmiyorum. Gereksiz nesne üretimi yapmadığın sürece, herhangi bir hissedbilir farkın olacağını düşünmüyorum.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.