C# 检查存储过程是否返回值

C# 检查存储过程是否返回值,c#,linq-to-sql,error-handling,C#,Linq To Sql,Error Handling,我在VS2010中使用LINQ2SQL,我有以下存储过程来检查用户名和密码 ALTER PROCEDURE dbo.CheckUser ( @username varchar(50), @password varchar(50) ) AS SELECT * FROM Users Where UserName=@username AND Password=@password 看起来您只想知道您的用户名和密码组合是否存在(从存储过程的名称)。 所以你应该这么做 ALTER PROCEDURE d

我在VS2010中使用LINQ2SQL,我有以下存储过程来检查用户名和密码

ALTER PROCEDURE dbo.CheckUser ( @username varchar(50), @password varchar(50) ) AS SELECT * FROM Users Where UserName=@username AND Password=@password
看起来您只想知道您的用户名和密码组合是否存在(从存储过程的名称)。 所以你应该这么做

ALTER PROCEDURE dbo.CheckUser
(
@username varchar(50),
@password varchar(50)
)
AS
  SELECT count(1) FROM Users Where UserName=@username AND Password=@password

它将只返回具有该组合的记录数。然后在代码中,您可以检查存储过程返回的标量,如果它是0,则表示没有这样的用户。

您可以向我们展示用于访问存储过程的代码吗?例外情况呢?当然。我将编辑System.Core.dll中的post.System.InavlidOperationException,“序列不包含元素”
ALTER PROCEDURE dbo.CheckUser
(
@username varchar(50),
@password varchar(50)
)
AS
  SELECT count(1) FROM Users Where UserName=@username AND Password=@password