[Code Review] Database İşlemleri

Geliştirme yaparken dikkat edilmesi gereken noktalardan bir tanesi veri tabanları ile ilgili yapılan geliştirmeler… Bu geliştirmeleri kontrol edilmemesi uygulama tarafında bolca SqlException alınmasına veya bazı noktaların gözden kaçmasına sebep olabilir.

Bugün yaşadığım bir sorun; bir uygulama içinde veri tabanından dönen bir sonucun direk olarak null ile kontrol edilmesi hata vermeyen ve false olarak değerlendirilen bir kontrol. Buna ek olarak DBNull.ToString() şeklinde bulunan kod parçası bize string.Empty  olarak dönüş yapması, null gitmesi gereken yerde hata oluşturarak uygulamanın istediğimiz gibi çalışmamasına sebep olması. Burada iki gibi gözükse de aslında üç tane kontrol hatası bulunuyor.

İlk olarak veri tabanı işlemlerinde bir değerin null kontrolünün mutlaka aşağıdaki gibi yapmalıyız.

Çünkü veri tabanı işlemlerinden null değer değil DBNull tipinde bir değer döner.
Diğer nokta bilinmesi zor olabilir ama yine de faydalı bir bilgi olan DBNull.ToString() methodunun string.Empty dönmesi. Bu bilgi yukarıdaki kontrol hatalı yaparsak karşımıza çıkmasının yanında hiç bir kontrol yapmadan devam eden kısımlarda sıkıntı yaratabilir. Değerin null olması ToString methodunun hata vermesini sağlamıyor bunu da unutmamak lazım.

En son nokta ise string olarak değer alan bir alanın kontrolleri sırasında text == “” veya text == null veya text == string.Empty kontrollerini kullanmak yerine string.IsNullOrEmpty(text) olarak kontrol edilmesi daha doğru olacaktır.

Hata vermeden sessizce geçen kontroller uygulamaların istenildiğinden daha farklı çalışmalarına sebep olabilir hatta başka uygulamaların çalışmasını engelleyebilir.

Yorumlayın