20 Haziran 2014 Cuma

Hataya Açık Kodlamalar

Nullable Alan İçeren Uniuqe Constraint

Tablo üzerinde, koyduğumuz “Uniuqe Constraint” içinde “nullable” bir alan var ise orta katmanda bu UC yi kullanarak oluşturan FETCH ‘i kullandığımızda, ilgili alan için “null” değeri içeren yapılan çağırımlarda, sonuç dönmeyecek ve kayıt bulunamayacaktır.

Aşağıda, ilgili alanın null (ilgili framework’te null==0 olarak kullanılmaktadır)  geldiği durum kontrol edilmiş, bu durumda FETCH yapılarak değil, klasik bir sorgulama ile kayıtlar çekilmiştir.

 

Null ile Kontrol

Nullable objelerin null’ı kontrol edilmeden, içindeki bir alana veya metoda erişmeye çalışmak çalışma zamanında hataya yol açacaktır.

TonajDT global tanımlanmış. Null olma ihtimali var.

private DataTable tonajDT
    {
        get
        {
            object tonajDT = ViewState["TonajDataTable"];
            if (tonajDT != null)
                return (DataTable)tonajDT;
            return null;
        }

 

 private TrfTarifeTonajTransferObjectList SecilenTonajBilgilerindenTOListOlustur()
    {
        TrfTarifeTonajTransferObjectList trfTonajTOList = new TrfTarifeTonajTransferObjectList();
        foreach (DataRow dr in tonajDT.Rows)
        {

 

DataTable’ın kullanıldığı yerde null olma durumunu yönetmemiz lazım.

 

LINQ Sorgusunda Nullable

 

Collection Count Kontrol

Bir listenin, referans ettiğimiz elemanının o listede olduğundan emin olmamız, kontrol etmemiz gerekir. En yaygın yapılan hata, boş bir listenin ilk elemanını okumaya çalışmaktır.

Hatalı durum, liste boş gelirse, kod çatlar.

Doğrusu, listenin boş geldiği durum her zaman yönetilmelidir.

 

 

DataTable AcceptChanges()

Datatable operasyonlarında, yapılan kayıtların etkin olabilmesi için AcceptChanges() metodunun çalıştırılması gerekir.

Bu konuya ait sistemde yapılan bir düzeltmenin görüntüsü aşağıdadır.

Hiç yorum yok:

Yorum Gönder