none
NullReferenceException belası RRS feed

  • Genel Tartışma

  • Merhaba,

    Uzun süredir kodlama yapıyorum. Kodlama evresinde benim yarınlarımı karartan, kendisini gördüğümde beyin fonksiyonlarımın durduğu yani kahrolup mahvolduğum bir hatadır kendileri.

    Ben diyorumki artık veritabanı kaydı yaparken bütün sütunlara boş değer ataması yapayım örn:"". Normalde de böylemi kullanılır bilmiyorum yada  siz nasıl bu hata ile yüzleşiyorsunuz öğrenmek isterim.

    29 Şubat 2020 Cumartesi 13:27

Tüm Yanıtlar

  • Çok kimsenin canini yakıyor ama NullReferenceException ile database Null ayni şey degil. (NullReferenceException da beni C#'da hasta eden şey - hayatimiz null kontrolu ile geciyor).

    Veritabani sutunlarini NULL yerine NOT NULL tanımlayıp, default degerlerle doldurma isine dogrusu ben de sıcak bakıyorum (Date\DateTime serisi hariç). Gercekten gerekmediği halde veritabanı tasarımında her nedense hep NULL olarak yapılıyor (sanki tembellikten, veritabanlarının varsayılan degeri NULL, NOT NULL ise yazmak gerekiyor) - SQL Server Insider 7.0 kitabı yazarılarinın da dediği gibi, "null is evil".




    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    29 Şubat 2020 Cumartesi 14:00
  • benim NullReferenceException  hatası alma sebebim genellikle dbnull olduğu için öyle sanıyor olabilirim :) 

    Her zaman amacım en az kod satırıyla yapacağım işi halletmek diğer türlü sorunlar baş gösteriyor, null kontrolü de bu işi nerdesin imkansız kılıyor. Bir sonrakinde mutlaka varsayılan değer belirleyip kullanacağım. Evil is inside of c# ^_^


    • Düzenleyen ali umac 29 Şubat 2020 Cumartesi 14:09 yanlış yazım
    29 Şubat 2020 Cumartesi 14:08
  • Null bir instance'ın bir elemanına ulaşmaya çalışan sizsiniz, neden sorunu C#'ta arıyorsunuz? Ben bu exception'u bu sadece forumlarda görüyorum. Anlamı : "Yanlış yapıyorsunuz"

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    29 Şubat 2020 Cumartesi 18:26
    Moderatör
  • Beterin beteri var derler.

    "The breakpoint will not currently be hit. No symbols have been loaded for this document." 

    Bende bunu gördüğümde kan beynime sıçrıyor :)

    29 Şubat 2020 Cumartesi 19:14
  • Evet bir şeyleri yanlış yaptığımız aşikar, ama bahsettiğimiz gibi normalde var olan bir nesnenin içi boş olduğunda bu hatayı döndürüyor. En mantıklısı veritabanında boş yere izin vermemek, default olarak boşluk bile verilse exception'a düşmüyor.
    29 Şubat 2020 Cumartesi 20:18
  • Onunla'da başım dertte aslında, onun hakkında da oturup ayrıca dertleşmek gerekir :) 
    29 Şubat 2020 Cumartesi 20:19
  • Evet bir şeyleri yanlış yaptığımız aşikar, ama bahsettiğimiz gibi normalde var olan bir nesnenin içi boş olduğunda bu hatayı döndürüyor. En mantıklısı veritabanında boş yere izin vermemek, default olarak boşluk bile verilse exception'a düşmüyor.

    Bence exception yüzünden verinin sağlığından ve dayanıklılığından feragat edilmemeli. Bir alan mecburi olması gerekiyorsa olmalı. Sırf exception olmasın diye tüm alanları nullable yapmak büyük hata.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    29 Şubat 2020 Cumartesi 20:59
    Moderatör
  • Evet bir şeyleri yanlış yaptığımız aşikar, ama bahsettiğimiz gibi normalde var olan bir nesnenin içi boş olduğunda bu hatayı döndürüyor. En mantıklısı veritabanında boş yere izin vermemek, default olarak boşluk bile verilse exception'a düşmüyor.

    Bence exception yüzünden verinin sağlığından ve dayanıklılığından feragat edilmemeli. Bir alan mecburi olması gerekiyorsa olmalı. Sırf exception olmasın diye tüm alanları nullable yapmak büyük hata.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    şuan nullable olan alanları unnulable  yaptım, veri kaydederken;

    newT.tourPhotoCaptionLatin = a.tourPhotoCaptionLatin ?? ""; 

    şeklinde kaydediyorum. Hata ileri zamanlarda sunumlama vs yaparken mi meydana çıkabilir acaba?

    29 Şubat 2020 Cumartesi 21:15