

Koddaki hatayı bulamadım, yardımcı olursanız sevinirim.

okunmuyor böyle. :/


dr["tckimlik"].ToString() yap onu.


hayal meyal okunuyor, anladığım kadarıyla DataReader'la okuduğun yeri bi objenin Text değeriyle karşılaştırıyorsun. muhtemelen cast işlemi yapmayı unuttun. ToString() eklemen yeterli olur. bu değilse, düzgünce bi ekran görüntüsü gelirse yorumlayabilirim.


Possible unintended reference comparison; to get a value comparison cast to left handside to type 'string'


yeni dosya ekledim ama, toString() yazınca çözülmedi


dr boş geliyor olabilir, connection string yanlış olabilir.


amacın o tc kimlik numarasıyla kayıt var mı diye kontrol etmekse, yöntemin yanlış. sql sorgusunu, girilmiş olan tc kimlik numarası ile kayıt var mı diye değiştirip, kayıt sayısına bakman, 0'dan büyükse uyarı çıkartman gerekir.
zira, şu anki sorgunun sonucunda datareader'a birden fazla kayıt doluyor olabilir. muhtemelen de sorun oluşturan yer orası. datareader'ın içerisinde while (dr.Read()) ile tek tek dönüp bakman lazım şu anki yönteminle. bu kayıtlardan herhangi biri, textbox'daki değer mi diye. eğer ille bu yöntemi kullanacaksan, istediğin sonucu alamamanın sebebi bu. ama dediğim gibi, bu gibi işleri .NET tarafında çözmek yerine, sql'e hallettirmek her zaman bir çok açıdan iyidir.


dr boş değil de fazla dolu geliyor galiba.
ben iyi bilmiyorum ama sanki hasta kayıttaki tüm tclere bakıyorsun. sorgun tek kayıt döndürmediği için eşit olmaz sanırım textbox'tan girilen tc'ye.


sorguyu "select count(tckimlik) from hastakayit where tckimlik = '" + txtTc.Text + "'"
şeklinde değiştirip sonuç 1'se diye if yazabilirsin sanırım. c# pek bilmiyorum, syntax hatam olabilir.


ha evet tabii hepsini çekiyorsun sorguda ondan dikkat etmemiştim. dendiği gibi tersini yapıp sorguya girilen kimlik numarasını gönderip select'i öyle alsan daha iyi olur.
