ASP.NETTE Hit Uygulaması sorunu

Kodla Büyü

idemir

Aktif Üye
Mesajlar
147
Ben ASP.NETTE SQL veritabanından rastgele 2 adet veri çekip bunları kıyaslıyorum. Radio butonla oyu verdikten sonra rastgele 2 değer daha geliyor. Fakat ben oyu verdikten sonra benim oyu verdiğim değer değil yeni gelen 2 değerden birinin hit değeri artıyor. Örneğin birinciyi seçersem yeni gelen birinci değer artıyor 2. seçersem aynı işlem 2. için oluyor. Sorunu birkaç gündür çözemedim....
 
Sayın hocam, projenizi görmeden, kodlarınızı görmeden bir şey söyleyemeyiz. Muhtemelen işlem sırasında bir sorun oluyor, ya da güncelleme yaparken, yeni gelen bilgilerin ID'lerini gönderiyorsunuz.
 
Hocam dosya ekte sql yedeğide hit.bak olarak içinde. Sorun şu ben butona tıkladıktan sonra o anki form bilgileri veritabanına eklenmiyor. yeni gelen değerdeki bilgiler veri tabanına ekleniyor.
 
Kodlamanız hatalı, daha doğrusu mantık hatası var.
Page_load fonksiyonu içerisi doğru. İlk açılışta rastgele bilgi seçip, radio düğmelerine aktarıyorsunuz. Ancak eğer aynı değerler alınmışsa sayfayı yeniliyorsunuz. Bunu böyle yapmak yerine birinci değeri seçtikten sonra sonsuz bir while döngüsü içerisinde ikinci değeri seçin, birinciden farklıysa döngüden çıkın.
Hatalı olan bölüm düğmeye tıklandığında çalıştırdığınız bölüm. Siz butona tıklayınca, önce yeniden veritabanından değer seçip, radio düğmelerini değiştiriyor ardından hiti artırıyorsunuz. Halbuki önce hiti artıracak, ardından radio düğmelerine yeni değerler atayacaksınız. Kodlarınızı bu mantıkla incelerseniz, hatanızı bulabilirsiniz.
 
Hocam bende öyle olduğunu farkettim (Hatalı bölüm için diyorum) fakat sorun nasıl çözülecek onu bulamadım.
 
Ekte default.aspx.cs dosyasını düzenleyip, gönderdim. Deneme şansım olmadı ancak çalışacağını düşünüyorum.
 

Ekli dosyalar

Çalıştığına sevindim. Kod daha da kısaltılabilir aslında, yeni değerleri getiren kod bir alt program olarak yazılırsa, hem güncellemesi daha kolay olur hem de kod miktarı daha da azalır.
Ancak kodlarınızla ilgili olarak bir tavsiye,
yaptığınız çalışmada, veritabanından gelen Metin tipindeki değerleri radio düğmelerinin Text özelliğine atıyorsunuz, veritabanından güncelleme yapacağınız zaman da radio düğmelerinin bu text özelliklerine göre kaydı çağırıp, hit değerini artırıyorsunuz. Tavsiyem, eğer veritabanınızdaki tabloda bir id alanı varsa, radio düğmelerinin value özelliğine bu ID değerini atayıp, yine text özelliğine metin ifadesini atayın. Veritabanında güncelleme işleminde ayırt edici özellik olarak radio düğmesinin Value özelliğini (yani kaydın ID özelliğini) kullanın. Böylece hem kesin bir değer sonuç dönmüş olur hem de güvenlik önlemi alabilme şansınız olur. Şu anki sistemde eğer iki tane ismi aynı olan kayıt olursa ikisi birden güncellenir. Bu da istenmeyen bir durumdur.
 
Biraz uğraşmak gerekiyor ister istemez onları da zamanla yaparız inş. yalnız şöyle bir durum daha var. Ben bir önceki gelen değeri bir sonraki kıyaslamalarda gelmesini istemiyorum bunu nasıl yapacağım bu konuda bir fikriniz varmı? Örneğin ilk kıyaslamada php ile aspx geldi bir dahaki kıyaslamada bunlar hiç gelmeyecek. yani her değer bir defa gelip puanlama bitecek. İşte bu konuda hiç bir fikrim yok.
 
BBNET
Geri
Üst