【问题标题】:Pass two parameters to stored procedure and grab value将两个参数传递给存储过程并获取值
【发布时间】:2018-09-13 00:02:06
【问题描述】:

首先检查下面我的控制器代码。然后还要检查底部图片,其中包含我在 SQL Server Management Studio 中的存储过程代码。

现在的问题是:我的PagedSearchedUserItems 程序需要两个int 参数,它将返回几列数据的输出(您可以从下面的屏幕截图中看到数据示例)。

在我的控制器中,我不知道如何传递两个参数并在变量Items 中取回该数据。您能否修复我的控制器代码以正确传递两个参数,并获取变量“Items”上的所有值?

控制器代码:

using (var ctx = new db_demoEntities())
{
    var Items = ctx.Database.SqlQuery<SearchedUserItems>("EXEC PagedSearchedUserItems @TakeFrom",2).ToList<SearchedUserItems>();
}

存储过程代码:

CREATE PROCEDURE PagedSearchedUserItems
    @TakeFrom INT,
    @TakePerPage INT
AS
BEGIN
    SELECT * 
    FROM SearchedUserItems 
    ORDER BY Id 
        OFFSET @TakeFrom ROWS 
        FETCH NEXT @TakePerPage ROWS ONLY;
END

PagedSearchedUserItems 2,5

SQL Server Management Studio screenshot

【问题讨论】:

  • Typo 警告:它是一个 stored 过程 - 如在 SQL Server 中的 stored 中(与"store" ...) - 它是 "below" - (不是 "bellow") 一个 "l" 足够
  • 兄弟你以前是英语老师吗?无论如何,您的修复表示赞赏。你能回答我的问题吗?请...

标签: c# sql-server asp.net-mvc stored-procedures


【解决方案1】:

我认为您正在寻找类似的东西。此代码在传递两个参数时应该可以正常工作。我假设“SearchedUserItems”对象正在处理您的数据模型。

using (var ctx = new db_demoEntities())
{
object[] xparams = {
new SqlParameter("@TakeFrom", 2),
new SqlParameter("@TakePerPage", 5)};

var Items = ctx.Database.SqlQuery<SearchedUserItems>("EXEC PagedSearchedUserItems @TakeFrom, @TakePerPage", xparams).ToList<SearchedUserItems>();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2016-04-05
    相关资源
    最近更新 更多