无法识别日期时间



用户代码未处理FormatException。
该字符串未被识别为有效的日期时间。

protected void Page_Load(object sender, EventArgs e)
    {
        // to simulate a database query
        socialEvents = new DataTable();
        socialEvents.Columns.Add(new DataColumn("Date", typeof(DateTime)));
        socialEvents.Columns.Add(new DataColumn("Description", typeof(string)));
        socialEvents.Columns.Add(new DataColumn("Url", typeof(string)));
        DataRow row;
        row = socialEvents.NewRow();
        row["Date"] = DateTime.Now.AddDays(-5);
        row["Description"] = "Work";
        row["Url"] = "http://www.url.cz";
        socialEvents.Rows.Add(row);
    }

下列方法出错:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            **DataRow[] rows = socialEvents.Select(
             String.Format(
                "Date >= #{0}# AND Date < #{1}#",
                e.Day.Date.ToShortDateString(),
                e.Day.Date.AddDays(1).ToShortDateString()**
             )
          );

我建议使用LINQ来做这件事:

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    var rows = socialEvents.Rows.Cast<DataRow>
               .Where(r => (DateTime)r["Date"] >= e.Day.Date 
                           && (DateTime)r["Date"] <= e.Day.Date.AddDays(1))
               .ToArray();
);

对于字符串格式的查询没有更多的麻烦:您可以使用基于实际值的过滤器。

当然,如果Date可以为空,您将不得不处理这个问题。请告诉我,如果需要的话我会编辑这段代码。

相关内容

  • 没有找到相关文章

最新更新