【问题标题】:MS SQL query parameter from web来自 Web 的 MS SQL 查询参数
【发布时间】:2016-04-08 10:53:55
【问题描述】:

我正在集思广益,想看看在 MSSQL 中是否可以进行以下操作:

CREATE VIEW
 AS
  SELECT This,That,TheOther
  FROM SomeThing
  Where SomeThing.ID = <Result of http://my.app.com/GetUserInfo?UserID=xxx>

如果 xxx 为 null,则 Web 服务返回一个默认值,但如果它为非 null,则返回一个用户特定的值。目标是能够使用从查询编辑器运行的视图,使用全局指定的默认值。但如果它是从传递用户 ID 的 MVC 应用程序内部运行的,则视图使用特定于该用户的值作为查询参数。

这似乎应该是可能的,但我不知道如何。

【问题讨论】:

    标签: sql-server asp.net-mvc


    【解决方案1】:

    您不能在视图定义中使用参数(有一些技巧可以绕过它,但一般来说它们都很丑陋)。

    在视图中,WHERE 通常是根据需要“硬编码”以提供基本集(如果需要)。然后,您使用其他条件查询该视图。

    还请注意,将值连接到原始 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
    }
    

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多