我有这个。 “详细说明俱乐部在任何两个给定日期之间显示的所有电影,由用户输入。例如,俱乐部成员必须能够输入查询参数的开始日期和结束日期”
现在,我将如何进行用户输入?我能想到的唯一方法就是使用php或html格式的东西获取值,然后在查询中将它们作为变量提交。但是,这不是所需要的。那么,这是如何完成的,以便查询要求值?或者不是吗?
到目前为止我的查询是这样的。
SELECT film.title, film.desc, show.sdate, show.fdate
FROM film
INNER JOIN show
ON film.ID=show.filmID
WHERE sdate = '&userstart' AND fdate = '&userend'
如何处理用户输入?此外,查询是否正确?我无法测试,我只有一个设计而不是实现。
非常感谢
编辑:使用Windows系统,MS SQL Server。
答案 0 :(得分:3)
以下是存储过程的代码:
CREATE PROCEDURE SomeName(@UserStart DATETIME, @UserEnd DATETIME)
AS BEGIN
SELECT somestuff
FROM sometable
WHERE somedate BETWEEN @UserStart AND @UserEnd
END
答案 1 :(得分:1)
@ Kyle93 - 看看你的WHERE条款:
WHERE sdate ='& userstart'AND fdate ='& userend'
这只会让你有一个sdate(开始日期?)的电影等于输入的日期值。 您可能希望使用大于,小于运算符....
如:
WHERE sdate< ='& userend'AND fdate> ='& userstart'
(注意比较sdate与UserEnd Date以确保电影放映比UserEnd Date更早开始......等等)
这种方式 - 当节目开始或在日期范围内结束时 - 它将被选中。
答案 2 :(得分:-2)
你对LINQ很熟悉吗?这是从c#进行数据库调用的一种方法。
- 我会按照您的想法使用HTML来处理这个问题,并使用Javascript / Ajax来引用使用LINQ进行db调用的c#代码。如果您不熟悉其中的大部分内容,可能会有点复杂。如果有兴趣,我可以推荐好的教程。