سلام وقتتون بخیر
مقاله موجود در سایت در رابطه با آرشیو بندی مطالب در ASP.NET رو مطالعه کردم
ولی متاسفانه اصلا سر رشته ای از linq ندارم و با ado کار میکنم!
به این صورت نوشتم:
<div class="archive"> <div class="title"> <p>آرشیو <strong>ماهانه</strong></p> <div class="img"></div> </div> <div class="list"> <ul> <asp:Repeater ID="Repeater2" runat="server"> <ItemTemplate> <li> <a href="<%#string.Format("dayposts.aspx/{0:MM}/{1:yyyy}",Eval("datereg"),Eval("datereg"))%>"> <%#string.Format("{0:MMMM yyyy}",Eval("datereg")) %> </a> </li> </ItemTemplate> </asp:Repeater> </ul> </div> <div class="bottom"> <p> <span>تعداد کل مطالب تا کنون</span> <strong>8596148</strong> </p> </div> </div>
public void archivebind() { DAL run = new DAL(); string sqltext = string.Format("select * from tbl_content order by datereg desc"); Repeater2.DataSource = run.ExecuteQuery(sqltext); Repeater2.DataBind(); }
الان آرشیو بندی شده درست کار میکنه اما آرشیو روزانه شده نه ماهانه!
چه تغییر دیگه ای باید انجام بدم که بشه ماهانه؟
میتونید از groupby استفاده کنید
براساس روز تعیین کنید
استاد به این صورت نوشتم:
public void archivebind() { DAL run = new DAL(); string sqltext = string.Format("select * from tbl_content where active=1 group by DATEPART(day, [datereg])"); Repeater3.DataSource = run.ExecuteQuery(sqltext); Repeater3.DataBind(); }
این ارور رو میده:
آخه قسمت Group By رو که شرط گذاشتید در قسمت ستون ها نیوردید. خطای نحوی SQL به شما داده شده. این رو اضافه کنید:
Select *, DATEPART(month, [datereg])
در ضمن در قسمت گروه بندی کلمه day رو به month تغییر هم بدید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)