11 Mayıs 2012 Cuma

OldValuesParameterFormatString

   Bazı durumlarda güncelleme yaparken silinecek kaydın anahtar değerini de güncellemek isteyebiliriz. Böyle durumlarda ortaya bir sorun çıkıyor. Eski kayıtla yeni kayıt arasındaki farkı nasıl anlayacağız? Bu sorunu çözmenin yolu SqlDataSource kontrolünün OldValuesParameterFormatString özelliliğinde saklı. Bu özellik bize eski değerimizin nasıl bir formatta olacağını soruyor. Varsayılan değeri {0} olarak gözükmektedir. Bu değeri genellikle original_{0} olarak belirliyoruz. Yani benim orjinal değerim bu formattaki parametrede saklanacak diyoruz. Gridview veya detailsview gibi bir kontrolde örneğin müşteri adı gibi bir değeri bind etmişsek ve bu değer de tablomuzun anahtar alanı ise update komutunu yazarken 2 parametre kullanmamız gerekiyor. Birisi musteriAd öteki de original_musteriAd olmak üzere. musteriAd yeni değerimiz original_musteriAd eski değerimiz olacak. Anahtar alan dışındaki değerleri update yaparken böyle bir sorunla karşılaşmıyoruz. Çünkü original_{0} parametremizi genellikle bu gibi durumlarda where ifadesinde filtreleme yaparken kullanıyoruz. Örneğin UPDATE tblMusteri SET musteriAd = @musteriAd WHERE musteriAd = @original_musteriAd komutunda olduğu gibi.