Передача строки в функцию SelectParameter на веб-странице asp.net - PullRequest
0 голосов
/ 12 сентября 2011

Так что я очень давно не писал ASP-страницу. Фактически это был Classic ASP, и теперь я изо всех сил пытаюсь догнать новую версию .NET.

Моя проблема, я хочу найти в базе данных строки, которые относятся только к текущей неделе. Должны отображаться строки с понедельника по пятницу текущей недели, независимо от того, какой день текущей недели я просматриваю.

Я начал с приведенного ниже кода, который дает мне две даты для вставки в мою SqlDataSource строку «Где».

  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 голосов
/ 12 сентября 2011

Вы можете сделать следующее .. Отредактируйте свою страницу 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

0 голосов
/ 12 сентября 2011

Самый простой способ - установить 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() элемент управления, к которому вы его подключили, либо обработать результаты в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...