因此,我编写ASP页面已经很长时间了。实际上它是经典ASP,现在我正在努力赶上新的.NET版本。
我的问题是,我想在数据库中搜索仅适用于本周的行。它应显示当前周的周一至周五的行,无论当前周的哪一天我正在查看该页面。
我从下面的代码开始,它给了我两个日期插入我的SqlDataSource
“Where”字符串。
Dim Mon As DateTime
Dim Fri As DateTime
Dim daysDiff As Integer
daysDiff = 2 - Weekday(DateTime.Today)
Mon = DateAdd("d", daysDiff, DateTime.Today)
Fri = DateAdd("d", 4, Mon)
现在我的问题是我不知道如何抓取“Mon”和“Fri”的值将其插入ASP:SqlDataSource SelectCommand函数
SelectCommand = "SELECT * FROM [Concerts] WHERE ShowDate >= MON AND ShowDate <= Fri" >
我需要它解决:
SelectCommand = "SELECT * From [Concerts] WHERE ShowDate >= 09/12/2011 AND ShowDate <= 09/16/2011">
我非常感谢您的帮助,因为我已经花了几天时间试图完成这一件事,对于那里的专家来说应该相当简单。
答案 0 :(得分:0)
最简单的方法是设置DefaultValue
中使用的参数的SqlDataSource
。
示例:
<asp:sqlDataSource ID="ConcertsSqlDataSource"
SelectCommand="SELECT * From [Concerts] WHERE ShowDate >= @StartDate AND ShowDate <= @EndDate"
ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
OnInserted="EmployeeDetailsSqlDataSource_OnInserted"
RunAt="server">
<SelectParameters>
<asp:Parameter Name="StartDate" Type="DateTime" />
<asp:Parameter Name="EndDate" Type="DateTime" />
</SelectParameters>
</asp:sqlDataSource>
后面的代码(这是C#但在VB.NET中应该类似)
ConcertsSqlDataSource.SelectParameters["StartDate"].DefaultValue = Mon.ToString();
ConcertsSqlDataSource.SelectParameters["EndDate"].DefaultValue = Friday.ToString();
之后,你可以DataBind()
你附加的控件或处理后面代码中的结果。
答案 1 :(得分:0)
您可以执行以下操作.. 编辑ASPX页面。 确保您的SELECT命令如下所示:
SelectCommand="SELECT * FROM [Concerts] WHERE (([ShowDate] > @MON) AND ([ShowDate ] < @FRI))">
<SelectParameters>
<asp:Parameter Name="MON" DefaultValue="" Type="DateTime" />
<asp:Parameter Name="FRI" DefaultValue="" Type="DateTime" />
</SelectParameters>
现在在你的代码后面你可以添加以下内容..
SqlDataSource1.SelectParameters["MON"].DefaultValue = Convert.ToString(Mon);
SqlDataSource1.SelectParameters["FRI"].DefaultValue = Convert.ToString(Fri);
SqlDataSource1.DataBind();
一般来说,我远离SqlDataSource并使用DataSets- http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx