5

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

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

4

3 回答 3

3

这是存储过程的代码:

CREATE PROCEDURE SomeName(@UserStart DATETIME, @UserEnd DATETIME) 
AS BEGIN

SELECT somestuff
FROM sometable
WHERE somedate BETWEEN @UserStart AND @UserEnd

END
于 2012-08-15T19:27:21.043 回答
1

@Kyle93 - 查看您的 WHERE 子句:

WHERE sdate = '&userstart' AND fdate = '&userend'

这只会让您获得 sdate(开始日期?)等于输入日期值的电影。您可能想要使用大于、小于运算符....

如:

WHERE sdate <= '&userend' AND fdate >= '&userstart'

(注意将 sdate 与 UserEnd Date 进行比较,以确保电影放映开始早于 UserEnd Date...等)

这样 - 当节目在日期范围内开始或结束时 - 它将被选中。

于 2012-08-15T19:15:11.567 回答
-2

你对 LINQ 很熟悉吗?这是一种从 c# 进行数据库调用的方法。

-- 我会按照您的想法使用 HTML 来处理这个问题,并使用 Javascript/Ajax 来引用使用 LINQ 进行 db 调用的 c# 代码。但是,如果您不熟悉其中的大部分内容,可能会有点复杂。如果有兴趣,我可以推荐好的教程。

于 2012-08-15T18:26:36.157 回答