C# 如何解决此过程或函数';选择follow';应为参数'@用户ID';,没有提供的;?
我试图从参数中获取当前用户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
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);
}
是的。。。不将参数传递到存储过程,正如错误消息所示。如果您有其他问题,只需通过链接到此问题创建一个新问题。如果你提供的答案被认为是有帮助的,你也可以考虑阅读。好吧,但是我如何把问题联系到这个问题上,请帮助我如何走出这个问题:“你已经达到了你的问题极限,对不起,我们不再接受这个帐户的问题。请参阅帮助中心了解更多。”