用户代码未处理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()**
)
);
答案 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,则必须处理此问题。只需告诉我,如果需要,我将编辑此代码。