none
ID 0 olunca default veri gelmesi RRS feed

  • Soru

  • Merhaba arkadaşlar bir projede Başlık ve Buna bağlı yorum tablom var. Amacım sayfa ilk açıldığında Başlık ID'si 0 olsa dair mesela Yorum gelmesini istiyorum.

    Aşağıdaki gibi deniyorum fakat foreach içine girmiyorum. Bu nasıl mümkün olabilir.

     private void GetYorum(int id)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("Yorum");
                dt.Columns.Add("Tarih");
                dt.Columns.Add("Begen");
                dt.Columns.Add("Begenme");
                dt.Columns.Add("UserID");
                dt.Columns.Add("BaslikID");
    
                using (TeknikTraktorEntities tr = new TeknikTraktorEntities())
                {
                    var yorum = (from v in tr.Yorumlar where v.BaslikID == id select v).ToList();
    
                    int i = 0;
                    foreach (var k in yorum)
                    {
                        dt.Rows.Add();
                        dt.Rows[i]["Yorum"] = k.Yorum;
                        dt.Rows[i]["Tarih"] = k.Tarih;
                        dt.Rows[i]["Begen"] = k.Begen;
                        dt.Rows[i]["Begenme"] = k.Begenme;
                        dt.Rows[i]["UserID"] = k.Userslar.Ad + " " + k.Userslar.Soyad;
    
                        if (i == 0)
                        {
    
                            dt.Rows[i]["Yorum"] = k.Yorum;
                            dt.Rows[i]["Tarih"] = k.Tarih;
                            dt.Rows[i]["Begen"] = k.Begen;
                            dt.Rows[i]["Begenme"] = k.Begenme;
                            dt.Rows[i]["UserID"] = k.Userslar.Ad + " " + k.Userslar.Soyad;
    
                            rptyorumlar.DataSource = dt;
                            rptyorumlar.DataBind();
    
                        }
    
    
                        i++;
                    }
                    rptyorumlar.DataSource = dt;
                    rptyorumlar.DataBind();
    
                }
    
            }

    18 Ocak 2016 Pazartesi 14:59

Yanıtlar

  • o zaman Where için

    int baslikId = id == 0 ? tr.Basliklar.Last().Id : id;
    var yorum = (from v in tr.Yorumlar where v.BaslikID = baslikId select v).ToList();

    gibi bir şey olabilir

    Not : İstersen Last yerine First de kullanabilirsin.


    Herkes mevcut projesi bitince daha iyi ve güvenli kod yazmaya başlayacakmış. Hazır olun Türkiye'de yazılım çağ atlamak üzere


    • Düzenleyen Olcay GUZEL 19 Ocak 2016 Salı 10:11
    • Yanıt Olarak İşaretleyen ali yılmaz 19 Ocak 2016 Salı 10:33
    19 Ocak 2016 Salı 10:10
  • where kullanma ToList yerine Take kullan sanırım istediğin gibi bir şey olur.

    Yani

    var yorum = (from v in tr.Yorumlar select v).Take(5);
    gibi. 5 yerine kaç yorum almak istiyorsan onu yazabilirsin.


    Herkes mevcut projesi bitince daha iyi ve güvenli kod yazmaya başlayacakmış. Hazır olun Türkiye'de yazılım çağ atlamak üzere

    18 Ocak 2016 Pazartesi 20:15

Tüm Yanıtlar

  • where kullanma ToList yerine Take kullan sanırım istediğin gibi bir şey olur.

    Yani

    var yorum = (from v in tr.Yorumlar select v).Take(5);
    gibi. 5 yerine kaç yorum almak istiyorsan onu yazabilirsin.


    Herkes mevcut projesi bitince daha iyi ve güvenli kod yazmaya başlayacakmış. Hazır olun Türkiye'de yazılım çağ atlamak üzere

    18 Ocak 2016 Pazartesi 20:15
  • Teşekkürler fakat benim istediğim take değil. Mesela İlk başlığın yorumların gelmesini istiyorum.

    19 Ocak 2016 Salı 10:03
  • o zaman Where için

    int baslikId = id == 0 ? tr.Basliklar.Last().Id : id;
    var yorum = (from v in tr.Yorumlar where v.BaslikID = baslikId select v).ToList();

    gibi bir şey olabilir

    Not : İstersen Last yerine First de kullanabilirsin.


    Herkes mevcut projesi bitince daha iyi ve güvenli kod yazmaya başlayacakmış. Hazır olun Türkiye'de yazılım çağ atlamak üzere


    • Düzenleyen Olcay GUZEL 19 Ocak 2016 Salı 10:11
    • Yanıt Olarak İşaretleyen ali yılmaz 19 Ocak 2016 Salı 10:33
    19 Ocak 2016 Salı 10:10
  • Bu şekilde oldu Teşekkürler.
    19 Ocak 2016 Salı 10:33