c# - ASP.NET MVC 调用存储过程时未提供错误参数

标签 c# asp.net stored-procedures

我当前有一个 ASP.NET MVC 应用程序尝试执行存储过程。

我的存储过程是这样的:

ALTER PROCEDURE [dbo].[_SelectFromQry] 
    @queryname NVARCHAR(255)
AS
BEGIN
    SELECT TBLNAME, TBLCOL, TBLCOLLABEL, POSITION
    FROM QRY
    WHERE QUERYNAME = @queryname
END

在我的 Controller 中,我编写了如下代码:

var result =  db.Database.SqlQuery<RESULT_FROM_QRY>("_SelectFromQry", new   SqlParameter("queryname","INVAVAIL")).ToList(); 

当应用程序到达这一行时,我会得到一个

SqlCilent.SqlExcepction: procedure '_SelectFromQry' expects parameter '@queryname' which was not supplied.

我不确定我的代码是否正确调用了存储过程?

最佳答案

大概问题是您在 SqlParameter 构造函数中使用“queryname”而不是“@queryname”,即:

new SqlParameter("queryname","INVAVAIL")

应该是这样的:

new SqlParameter("@queryname","INVAVAIL")

关于c# - ASP.NET MVC 调用存储过程时未提供错误参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50458781/

相关文章:

c# - 错误 CS0030 : Cannot convert type 'Simple.Amazon.ECS.ImageSet[]' to 'Simple.Amazon.ECS.ImageSet' in Amazon Web Service

c# - 在 C# 中格式化小数,至少保留 2 位小数

c# - Dispose() 如何在我的 Controller 和 Repository 类中工作

c# - Entity Framework 存储过程不可用

mysql - 如何跟踪谁更改了表中的记录

c# - 如何从代码隐藏中调用按钮单击事件处理程序

c# - 适用于 WP7 的 XNA 高速平滑动画

asp.net mvc 使用 html5mode 和路由托管 Angular 应用程序

c# - SQL 中的时间始终为 "AM"。为什么?

mysql - 如何从表中删除列(如果存在)