无法识别DateTime

时间:2013-02-27 08:15:59

标签: asp.net datetime calendar

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

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

1 个答案:

答案 0 :(得分:1)

我建议使用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可以为null,则必须处理此问题。只需告诉我,如果需要,我将编辑此代码。