【发布时间】:2015-04-17 16:58:22
【问题描述】:
我正在尝试根据 sql server 数据库中的数据条目显示每天的事件列表。我希望它像这样显示在页面上:
Monday - Title1 Title2
Tuesday - Title3
Wednesday - Title4 Title5
现在我的数据是这样的
Title | StartDate
Title1 | 2015-04-20 16:46:00.00
Title2 | 2015-04-20 12:46:00.00
Title3 | 2015-04-21 16:46:00.00
Title4 | 2015-04-22 1:46:00.00
Title5 | 2015-04-22 13:12:00.00
我只需要接下来的 7 天。我对此很陌生,这就是我试图做的,但这根本不像我想要的那样工作。
StringBuilder el = new StringBuilder();
using (SqlConnection conn = new SqlConnection(""))
{
SqlCommand cmd = new SqlCommand(@"select * from Event where
convert(datetime, StartDate , 101) >= DATEADD(d,DATEDIFF(d,0,getdate()),0)
order by StartDate", conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
DateTime start = DateTime.Now;
DateTime end = DateTime.Now.AddDays(7);
int days = (end - start).Days;
Enumerable
.Range(0, days)
.Select(x => start.AddDays(x))
.ToList()
.ForEach(d =>
{
DayOfWeek dayOfWeek = d.DayOfWeek;
el.Append("<strong>" + Convert.ToDateTime(rdr["StartDate"].ToString()).DayOfWeek + "</strong><br />");
el.Append(rdr["Title"].ToString() + "<br />");
});
}
rdr.Close();
}
Label1.Text = el.ToString();
【问题讨论】:
-
你卡在哪一点?这个问题太宽泛了
-
您使用的是什么 DBMS?这看起来可以通过 PIVOT 查询来完成。