مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

moonfa1392

عضویت از 1394/08/17

آرشیو مطالب

  • شنبه 19 فروردین 1396
  • 18:21
تشکر میکنم

سلام وقتتون بخیر

مقاله موجود در سایت در رابطه با آرشیو بندی مطالب در 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();
    }

الان آرشیو بندی شده درست کار میکنه اما آرشیو روزانه شده نه ماهانه! 

چه تغییر دیگه ای باید انجام بدم که بشه ماهانه؟

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 19 فروردین 1396
  • 18:32

میتونید از groupby استفاده کنید

براساس روز تعیین کنید

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • شنبه 19 فروردین 1396
  • 20:08

استاد به این صورت نوشتم:

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();
    }

این ارور رو میده:

کاربر سایت

اوبالیت

عضویت از 1392/08/24

  • شنبه 19 فروردین 1396
  • 22:27

آخه قسمت Group By رو که شرط گذاشتید در قسمت ستون ها نیوردید. خطای نحوی SQL به شما داده شده. این رو اضافه کنید:

Select *, DATEPART(month, [datereg]) 

در ضمن در قسمت گروه بندی کلمه day رو به month تغییر هم بدید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)