C# 如何解决此过程或函数';选择follow';应为参数'@用户ID';,没有提供的;?

C# 如何解决此过程或函数';选择follow';应为参数'@用户ID';,没有提供的;?,c#,asp.net-mvc,stored-procedures,sqlcommand,C#,Asp.net Mvc,Stored Procedures,Sqlcommand,我试图从参数中获取当前用户ID,并使用存储过程检查它是否存在于数据库表中 public PartialViewResult AllStates(字符串状态,字符串用户ID) { SqlCommand cmd=新的SqlCommand(); Following=新的Following(); cmd.Parameters.Add(“@userid”,SqlDbType.BigInt).Value=userid; List model=db.Farmer.Where(u=>u.FarmState==s

我试图从参数中获取当前用户ID,并使用存储过程检查它是否存在于数据库表中

public PartialViewResult AllStates(字符串状态,字符串用户ID)
{
SqlCommand cmd=新的SqlCommand();
Following=新的Following();
cmd.Parameters.Add(“@userid”,SqlDbType.BigInt).Value=userid;
List model=db.Farmer.Where(u=>u.FarmState==state).Take(3.ToList();
var modelfollow=db.Following.SqlQuery(“[dbo].[selectfollowing]”)。ToList();
ViewBag.folo=modelfollow;
返回PartialView(“\u UsersList”,model);
}
这是我的存储过程

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE SelectFollow 
    @userid INT
AS
BEGIN
DECLARE @HasFollowed BIT
    IF EXISTS(SELECT * FROM dbo.Followings Where UserId = @userid)
BEGIN
SET @HasFollowed = 1
END
ELSE
BEGIN
SET @HasFollowed = 0
END
END
GO

有什么我做错了吗?

问题在这一行,它不包含任何存储过程(SP)参数,而SP需要一个参数,因此引发了标题中提到的异常:

var modelfollow=db.Following.SqlQuery(“[dbo].[selectfollowing]”)。ToList();
另外,您正在将参数添加到包含空查询字符串的
SqlCommand
实例中(之后您不会执行它):

SqlCommand cmd=new SqlCommand();
cmd.Parameters.Add(“@userid”,SqlDbType.BigInt).Value=userid;
由于您使用的是方法,您可以通过声明实例将查询参数作为该方法的第二个参数传递:

public PartialViewResult AllStates(字符串状态,字符串用户ID)
{
//在此定义存储过程参数
var参数=新的SqlParameter(“@userid”,SqlDbType.BigInt);
parameter.Value=userid;
List model=db.Farmer.Where(u=>u.FarmState==state).Take(3.ToList();
//使用上面声明的存储过程参数
var modelfollow=db.Following.SqlQuery(“[dbo].[selectfollowing]@userid”,参数).ToList();
ViewBag.folo=modelfollow;
返回PartialView(“\u UsersList”,model);
}

是的。。。不将参数传递到存储过程,正如错误消息所示。如果您有其他问题,只需通过链接到此问题创建一个新问题。如果你提供的答案被认为是有帮助的,你也可以考虑阅读。好吧,但是我如何把问题联系到这个问题上,请帮助我如何走出这个问题:“你已经达到了你的问题极限,对不起,我们不再接受这个帐户的问题。请参阅帮助中心了解更多。”