2017-08-07 66 views
-2

我正在使用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存储过程,其被如下检索存储过程?我已经看过它,但我没有运气。

在此先感谢您的任何建议,我对此相对较新。

+1

你绝对可以使用所选的值,但用它来获取数据,所以你可以添加代码我们可以告诉你改变什么 – Dumisani

+0

到目前为止你有什么?如何在SQL中的参数中传递值,或者在您的(可能的)JavaScript代码中传递值? – Leonidas199x

+1

我的建议是,学习谷歌将是你作为一名新程序员最宝贵的技能。 –

回答

0

对这篇文章的读:

https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/create-a-stored-procedure

它给出了如何编写使用可被传递变量的存储过程的例子在你的代码,这将是这样的:

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 
+0

感谢您的回复。经过一番研究,动态选择就是我所追求的。我理解如何声明参数,但我不明白我将如何在JavaScript文件中将参数引用到optionSelected变量中?你有什么建议吗?我真的很感谢你的帮助 – LM2016

+0

害怕我从未以这种方式使用过JavaScript。发布你到目前为止的代码,我相信有人能够提供帮助。 – Leonidas199x

相关问题