Durgut » C#

Linq

(3 mesaj(lar))
  1. csharp

    offline
    Üye

    Merhaha Arkadaşlar,
    Aşagıdaki kodda,bu haftaya ait verileri getirmek istiyorum,
    Bide başka method da 15 gün önceki verileri getirmek istiyorum.
    Bunu nasıl yapabilirim hoşcakalın.

    var sorgu = (from c in db.TBLIHALEs
    where c.IHALE_GIRIS_TARIHI.Year == Tarih.Year && c.IHALE_GIRIS_TARIHI.Month == Tarih.Month && c.IHALE_GIRIS_TARIHI == Tarih.

    9 months önce #
  2. Aydin

    offline
    Üye

    Linq'dan anlamıyorum kusura bakma.Daha bilgili arkadaşlar yardımcı olacaklardır.Ancak iki tarih arasındaki verileri listelemek için evela elinde ikitarih olmalı.O yüzden haftabaşının hangi tarih olduğunu bulman gerekiyor önce.
    Bunu elle iki tarih seçtirerek yapabilirsin ki böylesi daha dinamik olur ya da haftabaşı tarihi bulmak için biraz işlem yaparsın.

    9 months önce #
  3. Timuçin

    offline
    Üye

    Öncelikle result u var tipinde almasına gerek var mi emin değilim Ihale bilgilerini tuttugu bi class vardır.Böyle bir durumda generic list döndürebilirsin. var tipini yeni bi class döndürürken kullanırız. ( örnegin select new { c.IHALE_ADI, c.IHALE_GIRIS_TARIHI } seklinde sadece 2 kolon cekmek istersen kullanılabilir).Bunun dışında class ın kendisine ihtiyacın varsa generic list kullanabilir.Soruya gelirsek öncelikle güncel haftadaki ihaleleri almak icin haftanın baslangıcı ve bitişini bulman lazım.Bunlar için DateTime tipinde struct döndüren FirstDayOfWeek ve LastDayOfWeek isimli iki method yazdım.

    private DateTime FirstDayOfWeek()
    {
    double offset = 0;
    switch (DateTime.Today.DayOfWeek)
    {
    case DayOfWeek.Monday:
    offset = 0;
    break;
    case DayOfWeek.Tuesday:
    offset = -1;
    break;
    case DayOfWeek.Wednesday:
    offset = -2;
    break;
    case DayOfWeek.Thursday:
    offset = -3;
    break;
    case DayOfWeek.Friday:
    offset = -4;
    break;
    case DayOfWeek.Saturday:
    offset = -5;
    break;
    case DayOfWeek.Sunday:
    offset = -6;
    break;
    }
    return DateTime.Today.AddDays(offset);
    }

    private DateTime LastDayOfWeek()
    {
    return FirstDayOfWeek().AddDays(7);
    }

    Result u almak için de

    List<Ihale> Result = (from i in db.Ihales where i.GirisTarihi > FirstDayOfWeek() && i.GirisTarihi < LastDayOfWeek() orderby i.GirisTarihi select i).ToList();

    Lamda Expression kullanarak
    List<Ihale> Result = db.Ihales.Where(i => i.GirisTarihi > FirstDayOfWeek() && i.GirisTarihi < LastDayOfWeek()).OrderBy(i => i.GirisTarihi).ToList();

    yöntemlerinden birini kullanabilir. DateTime.Today.AddDays(-15); diyerek 15 gün önceki verileri de çekebilir veya istediğin iki tarihin aralığını alabilirsin hayal gücüne bırakıyorum bu noktadan sonra :)

    Kolay gelsin,

    9 months önce #

Bu konu için RSS beslemesi

Cevapla

Mesaj göndermek için giriş yapmalısınız.