将字符串传递给SelectParameter函数asp.net网页

时间:2011-09-12 03:43:15

标签: asp.net sql

因此,我编写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"> 

我非常感谢您的帮助,因为我已经花了几天时间试图完成这一件事,对于那里的专家来说应该相当简单。

2 个答案:

答案 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] &gt; @MON) AND ([ShowDate ] &lt; @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