none
metod hk.. RRS feed

  • Soru

  • herkese mrb,

    bool bir metod ile stok kontrolü yapıyorum, yeni veri kaydında sıkıntı olmadan işlem yapıyor,

    fakat kayıtlı işlemde stok miktarı değiştirmek istediğimde

    "static olmayan metod hedef gerektirir" hatası veriyor.

    bunu nasıl aşabilirm,

    7 Ekim 2019 Pazartesi 14:20

Tüm Yanıtlar

  • Static bir metotun içerisinde static olmayan bir metot- property çağırırsan hata alırsın. 

    Altan Özdemir

    7 Ekim 2019 Pazartesi 14:33
  • Static bir metotun içerisinde static olmayan bir metot- property çağırırsan hata alırsın. 

    Altan Özdemir

    blok içerisinde hiç statik metot yok.

    void ve bool metodlar var.

    7 Ekim 2019 Pazartesi 14:38
  • Static bir metotun içerisinde static olmayan bir metot- property çağırırsan hata alırsın. 


    Altan Özdemir

    blok içerisinde hiç statik metot yok.

    void ve bool metodlar var.

    Kodu paylaşmanız gerekli

    www.cihanyakar.com

    7 Ekim 2019 Pazartesi 14:45
  • Static bir metotun içerisinde static olmayan bir metot- property çağırırsan hata alırsın. 


    Altan Özdemir

    blok içerisinde hiç statik metot yok.

    void ve bool metodlar var.

    Kodu paylaşmanız gerekli

    www.cihanyakar.com


    private bool StokKontrol()
            {}



    7 Ekim 2019 Pazartesi 14:58
  • Hangi satırda hata alıyorsunuz? Kaydettiğiniz kısmı da paylaşabilir misiniz?

    www.cihanyakar.com



    7 Ekim 2019 Pazartesi 15:43
  • Hangi satırda hata alıyorsunuz? Kaydettiğiniz kısmı da paylaşabilir misiniz?

    www.cihanyakar.com



     private void btnKaydet_Click(object sender, EventArgs e)
            {}

    stok kontrolde "decimal stokGiren " satırında fırlatıyor, hatayı




    • Yanıt Olarak Öneren Cihan Yakar 8 Ekim 2019 Salı 11:44
    • Düzenleyen canleveent 8 Ekim 2019 Salı 17:13
    8 Ekim 2019 Salı 07:00
  • Sorun şu gibi duruyor

    .Sum(c => c.Miktar) ??0M


    kısmında sol taraftan veri gelmediğinde null olacağını  düşünmüşsünüz ama EF de öyle olmayabilir zira LinqToSQL de her zaman patlar bu ifade. 

    .Select(x=>x.Miktar).DefaultIfEmpty(0).Sum()

    Şeklinde değiştirip deneyebilirsiniz.

    Fakat, race condition durumunu düşünmemişsiniz. İki kişi aynı anda son ürünü almak isterse bu kod ikisine de ürünü verebilir. Çok çok sık yapılan bir hatadır bu. Ürün tek makinede çalışacaksa sorun yok tabii.


    www.cihanyakar.com



    8 Ekim 2019 Salı 11:37
  • Sorun şu gibi duruyor

    .Sum(c => c.Miktar) ??0M


    kısmında sol taraftan veri gelmediğinde null olacağını  düşünmüşsünüz ama EF de öyle olmayabilir zira LinqToSQL de her zaman patlar bu ifade. 

    .Select(x=>x.Miktar).DefaultIfEmpty(0).Sum()

    Şeklinde değiştirip deneyebilirsiniz.

    Fakat, race condition durumunu düşünmemişsiniz. İki kişi aynı anda son ürünü almak isterse bu kod ikisine de ürünü verebilir. Çok çok sık yapılan bir hatadır bu. Ürün tek makinede çalışacaksa sorun yok tabii.


    www.cihanyakar.com



    cihan bey,

    denedim, yine aynı şekilde hata verdi. hata msj,

    ayrıca, uygulamada çalıştığında malesef çok kullanıcı olacak.

    burasını nasıl uygulayacağımı bilemedim, şimdilik ilerleyen zamana bıraktım, yp bişi yok

    8 Ekim 2019 Salı 12:22
  • .Select(x=>(decimal?)x.Miktar).Sum() ?? 0M;

    şeklinde deneyin.


    www.cihanyakar.com

    8 Ekim 2019 Salı 12:35
  • .Select(x=>(decimal?)x.Miktar).Sum() ?? 0M;

    şeklinde deneyin.


    www.cihanyakar.com

    aynı malesef hatayı veriyor,

    8 Ekim 2019 Salı 12:46
  • .Select(x=>(decimal?)x.Miktar).Sum() ?? 0M;

    şeklinde deneyin.


    www.cihanyakar.com

    aynı malesef hatayı veriyor,

    cihan bey,

    breakpoint koyduğumda farkettim. entity null geliyor.

    yeni kayıtta sorunsuz, entity yükleniyor.

    Kayıtlı işleme, Düzeltme(update) işlemi uyguladığımda entity null geliyor. buna bir öneriniz olur mu,

    8 Ekim 2019 Salı 13:13
  •   decimal stokGiren = entity != null ? db.StokHareketler
                    .Where(c => c.Hareket == "Stok Giriş" && c.StokId == entity.Id).Sum(c => c.Miktar) ??0M : 0M;


    her ikisi için de


    www.cihanyakar.com


    • Düzenleyen Cihan Yakar 8 Ekim 2019 Salı 13:31
    • Yanıt Olarak İşaretleyen canleveent 8 Ekim 2019 Salı 13:36
    • Yanıt İşaretini Geri Alan canleveent 8 Ekim 2019 Salı 13:40
    • Yanıt Olarak İşaretleyen canleveent 8 Ekim 2019 Salı 13:40
    • Yanıt İşaretini Geri Alan canleveent 8 Ekim 2019 Salı 13:44
    8 Ekim 2019 Salı 13:31
  •   decimal stokGiren = entity != null ? db.StokHareketler
                    .Where(c => c.Hareket == "Stok Giriş" && c.StokId == entity.Id).Sum(c => c.Miktar) ??0M : 0M;


    her ikisi için de


    www.cihanyakar.com


    bu negaif bir stok için daha müsait değil mi? :)

    kontrol sagladım.stok negatif :)

    8 Ekim 2019 Salı 13:41
  • decimal MevcutStok = stokGiren - stokCikan;

    Burada mevcutStok değeri 0 + 0 = 0 olacak. Bunu kontrol etmeniz gerekir. 


    www.cihanyakar.com

    8 Ekim 2019 Salı 13:57
  • decimal MevcutStok = stokGiren - stokCikan;

    Burada mevcutStok değeri 0 + 0 = 0 olacak. Bunu kontrol etmeniz gerekir. 


    www.cihanyakar.com

    evet oluyor, 😁 direkt 0 yazınca da oluyor. Oysaki " race condition" durumunu  düşündemiştiniz. 😁😁 Yakışmadı, sanki





    8 Ekim 2019 Salı 14:04