Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 来自web的MS SQL查询参数_Sql Server_Asp.net Mvc - Fatal编程技术网

Sql server 来自web的MS SQL查询参数

Sql server 来自web的MS SQL查询参数,sql-server,asp.net-mvc,Sql Server,Asp.net Mvc,我正在集思广益,想看看在MSSQL中是否可以做到以下几点: CREATE VIEW AS SELECT This,That,TheOther FROM SomeThing Where SomeThing.ID = <Result of http://my.app.com/GetUserInfo?UserID=xxx> 创建视图 作为 选择这个,那个,其他 来自某物 其中SomeThing.ID= 如果xxx为null,webservice将返回一个默认值,但如果xx

我正在集思广益,想看看在MSSQL中是否可以做到以下几点:

CREATE VIEW
 AS
  SELECT This,That,TheOther
  FROM SomeThing
  Where SomeThing.ID = <Result of http://my.app.com/GetUserInfo?UserID=xxx>
创建视图
作为
选择这个,那个,其他
来自某物
其中SomeThing.ID=
如果xxx为null,webservice将返回一个默认值,但如果xxx为非null,则返回一个特定于用户的值。目标是能够使用从查询编辑器运行时使用全局指定的默认值的视图。但是,如果它是从传递用户ID的MVC应用程序内部运行的,则视图将使用特定于该用户的值作为查询参数


看起来这应该是可能的,但我不知道怎么做。

您不能在视图定义中使用参数(有一些黑客可以绕过它,但一般来说它们都很难看)

在视图中,WHERE通常根据需要进行“硬编码”,以生成基本集(如果需要)。然后,用额外的critiera查询该视图

还请注意,将值连接到原始SQL字符串是一个糟糕的想法。改用参数。您的代码将如下所示:

T-SQL

CREATE VIEW MyView AS SELECT This FROM That WHERE Those = 'BaseCriteria'
C#

using (SqlConnection conn = new SqlConnection(myConnStr))
using (SqlCommand cmd = new SqlCommand()) {
    cmd.Connection = conn;
    cmd.CommantText = "SELECT blah FROM MyView WHERE Field = @Value;";
    cmd.Parameters.AddWithValue("@Value", resultFromYourWebService);
    // open the connection and fill the table here
}