Jump to content
  • 0
Sign in to follow this  
aysegul

Field Hatası

Question

Merhaba,

Projemde önkayıt yapılan öğrencilere bir numara atamak istiyorum, "pre-100-20", "pre-101-20" gibi. İlk kaydolan öğrencinin numarası 100 olacak olup, buradaki 20 ise 2020nin 20si. Yani 2021 yılında ilk kayıt olan öğrencinin numarası "pre-100-21" olacak. 

ilk olarak aşağıdaki field yapısını denedim;

image.png.8470fe8e68759a60ae74902c25025afb.png

 

bu şekilde her set'e girdiğinde "değer"'i 100 olarak gördüğünü fark ettim. bu şekilde de aşağıdaki gibi yazmaya çalıştım.

image.png.52e044b45d3fa0066d2be591aae221fb.png

 

her iki yazım şeklini denememe rağmen, her yeni öğrenci tanımı "pre-100-20" olarak gelmektedir.

image.png.f17c78088f0a7c0e16c857bcfc797c2e.png

yardımlarınızı rica ederim.

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Bence preregistration clasını değiştirmen gerek.  ben aşağıda Ogrenci dedim:

 

image.thumb.png.ab23ee373c6a4d3d7eaaaf451f3d947b.png

 

Bu tabloya kayıt eklerkende  önce veri tabanından son pre numarasını bulup buna 1 ekleyerek kayıt ekranına gitmelisin:

 image.thumb.png.29f80d0b30d2b288b7b2583125dbe28e.png

Share this post


Link to post
Share on other sites
  • 0

Merhabalar. Öncelikle static değişkeniniz tüm instance alınan nesneler icin aynı olacaktır. Yani siz baska bir ögrencinin numarasını static degişkeniniz varsa nesne üzerinden degil ancak class uzerinden deigiştirebilirsiniz ve herkes icin bu numara 100 olur (baskası icin 101 eklerseniz de tüm class 101 numarasını alacaktır). Erdal Bey'in algoritması dogru olmasına ragmen property'sindeki durum StackOverFlow exception hatası verecektir (Field acılmadan property'nin kendi icerisine referans etmeye calısması durumu). İstedigin cözümü su sekilde yapmayı deneyebilirsin...

public class Ogrenci {


public int RecordNumber{get;set;} //db'ye göre sorgulanarak eger ilgili yıldaki ilk gelen kayıtsa 100 atanmalı degilse ise bir algoritma ile bir önceki kayıdın bir fazlası atanmalıdır (db.Students.OrderBy(x=>x.RecordDate.Year).FirstOrDefault().RecordNumber + 1)

string _ogrenciNo; //erişim belirteci olmadıgı icin ilgili degişken zaten private olarak görülecektir

//asagıdaki property'nin get ve set ozelliklerinin olması gerekmektedir.Aksi halde okuma veya atama yapılamaz yapılamaz.
public string OgrenciNo{
   //dısarıdan atamanın engellenmesi icin private set. Ancak get acık olmalı
    private set{
       _ogrenciNo =$"Pre-{RecordNumber}-{DateTime.Now.Year}";
      }
     get
      {
            return _ogrenciNo;
     }

}




}

Böylece kayıt aldıgın zaman numaraları ayrı alarak en sonunda bir Encapsulation ile hepsini birleştirebilecek ve tarih ile kayıt numarasını tek bir string'e entegre edebilecek duruma getirebilirsin..

Yine bir sorun oldugunda yazabilirsin.

İyi çalışmalar...

Share this post


Link to post
Share on other sites
  • 0

@aysegul bu tip durumlarda github linki paylaşırsan sorunun çözümü çok daha kolay olacaktır.

Share this post


Link to post
Share on other sites
  • 0

Merhaba,

ilk olarak @Erdal, @Winterex ve @admin  kısa zamandaki dönüşleriniz için sizlere teşekkür ederim.

öncelikle ben projemi codefirst ile yapmaktayım. o yüzden db'den instance alamam. bununla birlikte aşağıdaki gibi bir field yapısı oluşturdum.

image.png.d6042a854abcbc37cdc63943dfa8cbb6.png

ancak her yeni eklediğimde okul numarası sürekli yenileniyor, sabit kalmıyor.

image.png.03dcd0c9eba1c4eda21d202bfe213160.png

nerede hata yapıyorum sizde, teşekkür ederim.

https://github.com/aysegululker/School_Automation_System

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...