【发布时间】:2015-05-03 21:31:18
【问题描述】:
我在下面粘贴了我的代码。我想做的是使用当天过滤一组数据。 “day”字段存储为缩写的日期名称,因此“thu”表示星期四等。这非常有效,除非您将日期过滤器更改为其他内容,当天的选项不起作用。
例如,今天是星期日。当页面加载时,它会过滤掉所有不属于星期日的列表,因为它应该。在一小群LinkButton 控件上,如果您单击一周中的任何其他日期,它将再次更改并显示所选日期的选项,就像它应该做的那样。但是,当您再次尝试将过滤器设置为星期日,或单击“今天”按钮时,它不会改变。
根据我的代码,任何人都可以看出问题所在吗?如果有任何帮助,我的数据在远程 SQL 服务器上。
VB 代码:
Dim DateVal As Date = DateTime.UtcNow()
Dim DateName As String = DateVal.ToString("ddd")
Protected Sub btnMon_Click(sender As Object, e As EventArgs) Handles btnMon.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Mon"
End Sub
Protected Sub btnTue_Click(sender As Object, e As EventArgs) Handles btnTue.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Tue"
End Sub
Protected Sub btnWed_Click(sender As Object, e As EventArgs) Handles btnWed.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Wed"
End Sub
Protected Sub btnThu_Click(sender As Object, e As EventArgs) Handles btnThu.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Thu"
End Sub
Protected Sub btnFri_Click(sender As Object, e As EventArgs) Handles btnFri.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Fri"
End Sub
Protected Sub btnSat_Click(sender As Object, e As EventArgs) Handles btnSat.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Sat"
End Sub
Protected Sub btnSun_Click(sender As Object, e As EventArgs) Handles btnSun.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = "Sun"
End Sub
Protected Sub btnAll_Click(sender As Object, e As EventArgs) Handles btnToday.Click
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = DateName
End Sub
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
SqlDataSource1.SelectParameters("FiltDay").DefaultValue = DateName
End Sub
TSQL(如果有帮助)
SELECT Schedule.SlotID, RIGHT('00' + CONVERT(VARCHAR(2), Schedule.StartHr), 2) + ':' + RIGHT('00' + CONVERT(VARCHAR(2), Schedule.StartMin), 2) AS StartTime,
Schedule.ProgrammeID, Schedule.Day, RIGHT('00' + CONVERT(VARCHAR(2), Schedule.EndHr), 2) + ':' + RIGHT('00' + CONVERT(VARCHAR(2), Schedule.EndMin), 2)
AS EndTime, Programmes.ProgrammeName, Programmes.Description, Programmes.PresenterID, Presenters.PresenterName, Presenters.PhotoURL
FROM Presenters CROSS JOIN
Programmes CROSS JOIN
Schedule
WHERE (Schedule.Day = @FiltDay)
【问题讨论】:
-
交叉连接?您真的需要所有可能组合的笛卡尔积吗?
-
在按钮点击处理程序中,也许您应该为显示数据的控件调用
DataBind?
标签: asp.net sql-server vb.net tsql filtering