SQL - 查询中的用户输入

时间:2012-08-15 18:23:13

标签: sql sql-server

我有这个。 “详细说明俱乐部在任何两个给定日期之间显示的所有电影,由用户输入。例如,俱乐部成员必须能够输入查询参数的开始日期和结束日期”

现在,我将如何进行用户输入?我能想到的唯一方法就是使用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。

3 个答案:

答案 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#代码。如果您不熟悉其中的大部分内容,可能会有点复杂。如果有兴趣,我可以推荐好的教程。