检查存储过程是否返回值
我在 VS 2010 中使用 Linq 2 Sql,并且有以下存储过程来检查用户名和密码。
ALTER PROCEDURE dbo.CheckUser ( @username varchar(50), @password varchar(50) ) AS SELECT * FROM Users Where UserName=@username AND Password=@password
我遇到的问题是,如果用户名和密码不正确,它会引发异常。我想执行检查以查看是否有返回值,而不是使用 try/catch 来确定过程是否返回值。
我应该在代码(C#)中执行此检查吗?或者有没有办法在SQL中做到这一点?
谢谢。
编辑: 抛出异常的代码:
MyDatabaseDataContext db = new MyDatabaseDataContext();
String username = "username";
String password = "password";
User u = db.CheckUser(username, password); // Exception
I am using Linq 2 Sql in VS 2010, and I have the following stored procedure to check a username and password
ALTER PROCEDURE dbo.CheckUser ( @username varchar(50), @password varchar(50) ) AS SELECT * FROM Users Where UserName=@username AND Password=@password
The problem I'm having is that it throws an exception if the username and password are incorrect. I'd like to perform a check to see if there is a return value, rather than using try/catch to determine whether the procedure returned a value.
Should I do this check in code (C#)? Or is there a way to do it in SQL?
Thanks.
Edit:
Code throwing the exception:
MyDatabaseDataContext db = new MyDatabaseDataContext();
String username = "username";
String password = "password";
User u = db.CheckUser(username, password); // Exception
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您只想知道您的用户名和密码组合是否存在(来自存储过程的名称)。
因此,您可能应该执行
Which 只会返回具有该组合的记录数。然后在代码中,您可以检查存储过程返回的标量,如果它为 0,则不存在该用户。
It looks like you are only interested to know if your username and password combination exists (from the name of the stored procedure).
So you should probably do
Which will just return the count of records with that combination. Then in code, you can check for the scalar returned by the stored procedure and if it's 0, then there is no such user.