如何将参数传递给SQL存储过程?
我正在使用MVC框架。如何将参数传递给SQL存储过程?
在我看来,我有一个下拉菜单,填充了各种选项,并基于该下拉菜单中的选择我希望能够从数据库中检索相关数据。目前,所选值存储在名为optionSelected的变量中。
CREATE PROC [Production].[p_optionData]
AS
SELECT TOP 125 **optionSelected
FROM [Production].[gen_raw_mod]
WHERE [GPN] = '1234' AND [TIMESTAMP] >= '2017-01-12 00:00:00' AND [TIMESTAMP] <= '2017-01-18 23:59:59'
ORDER BY [TIMESTAMP] ASC
GO
所以,我想知道是否有使用所选选项的值来设定在所述的参数的方式:
的数据通过SQL存储过程,其被如下检索存储过程?我已经看过它,但我没有运气。
在此先感谢您的任何建议,我对此相对较新。
对这篇文章的读:
它给出了如何编写使用可被传递变量的存储过程的例子在你的代码,这将是这样的:
CREATE PROC [Production].[p_optionData]
@intGPN INT ,
@dteTimeStampStart DATETIME ,
@dteTimeStampEnd DATETIME;
AS
SELECT [Add required columns here]
FROM [Production].[gen_raw_mod]
WHERE [GPN] = @intGPN AND [TIMESTAMP] >= @dteTimeStampStart AND [TIMESTAMP] <= @dteTimeStampEnd
ORDER BY [TIMESTAMP] ASC
GO
确保您使用正确的DATETIME数据类型满足您的需求。
编辑:具有再次看了你的问题,如果你问如何有一个动态的选择:
CREATE PROC [Production].[p_optionData]
@strOptionSelected NVARCHAR(100)
AS
DECLARE @strSQLQuery NVARCHAR(MAX);
SELECT @strSQLQuery = 'SELECT TOP 125 '+ @strOptionSelected + ' FROM [Production].[gen_raw_mod] WHERE [GPN] = ''''1234'''' AND [TIMESTAMP] >= ''''somedate'''' AND [TIMESTAMP] <= ''''somedate'''' ORDER BY [TIMESTAMP] ASC;';
sp_executesql @strSQLQuery;
GO
感谢您的回复。经过一番研究,动态选择就是我所追求的。我理解如何声明参数,但我不明白我将如何在JavaScript文件中将参数引用到optionSelected变量中?你有什么建议吗?我真的很感谢你的帮助 – LM2016
害怕我从未以这种方式使用过JavaScript。发布你到目前为止的代码,我相信有人能够提供帮助。 – Leonidas199x
你绝对可以使用所选的值,但用它来获取数据,所以你可以添加代码我们可以告诉你改变什么 – Dumisani
到目前为止你有什么?如何在SQL中的参数中传递值,或者在您的(可能的)JavaScript代码中传递值? – Leonidas199x
我的建议是,学习谷歌将是你作为一名新程序员最宝贵的技能。 –