【发布时间】:2014-11-10 10:05:49
【问题描述】:
我有一个网格视图,我想过滤它以仅显示特定日期间隔内的数据(从日期 A 到日期 B,包括 A 和 B)
我使用SqlDataSource和FilterExpression,最初我使用这个FilterExpression:
FilterExpression="Submitted_time >= '{0}' AND Submitted_time <= '{1}'">
但结果中不包含 {1} 日期的数据(尽管我使用 ')(可能是因为时间(小时/分钟),所以我设法将 1 天添加到{1}:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CTECS %>" SelectCommand="SELECT * FROM [Event] ORDER BY [Id] DESC"
FilterExpression="Submitted_time >= '{0}' AND Submitted_time <= DATEADD(day, 1, '{1}')">
<FilterParameters>
<asp:ControlParameter Name="FromDate" ControlID="oCalendar1" PropertyName="SelectedDate" DefaultValue="1/1/1800" Type="DateTime" />
<asp:ControlParameter Name="ToDate" ControlID="oCalendar2" PropertyName="SelectedDate" DefaultValue="1/1/3000" Type="DateTime" />
</FilterParameters>
</asp:SqlDataSource>
然后 Visual Studio 给我:表达式包含未定义的函数调用 DATEADD()
这里的任何解决方案,我的目标只是将日期 {1} 的数据包含到结果中......
【问题讨论】:
-
不知道这是否会有所作为,但您在 {1} 的开头/结尾缺少引号,用于更新的函数 w/dateadd。我假设这是针对 sql server 的?我没有使用过 sqldatasource,所以我不确定,我想我会问:)
-
没关系,他们都犯了同样的错误。最初我输入“{1}”,然后更改为 {1},{1} 类型是 DateTime 而不是字符串,所以“”在这里无关紧要
标签: c# asp.net datetime sqldatasource dateadd