【发布时间】:2010-10-21 17:37:49
【问题描述】:
我有一个在登录期间调用以验证用户的存储过程。 如果成功,它会返回用户实体,效果很好!我的问题是,如果它不起作用,我将在 SP 中引发错误,我如何捕获此错误并以最佳方式使用它?现在我得到空引用,这是代码: 存储过程:
ALTER PROCEDURE getEmployee
(
@username nvarchar(50),
@password nvarchar(50)
)
AS
DECLARE @Error_MSG nvarchar(50)
BEGIN
IF EXISTS (select * from Employee where eUsername = @username AND pword = @password)
begin
select * from Employee where eUsername = @username AND pword = @password
END
ELSE
BEGIN
SET @Error_MSG = 'Wrong password, or user doesnt exist'
RAISERROR (@Error_MSG, 11,1)
END
END
在代码中看起来像这样,SP 是 getEmployee
ActivityDatabaseDataContext dc = new ActivityDatabaseDataContext();
Employee emp;
public bool logIn(string piUsername, string piPassword)
{
try
{
emp = dc.getEmployee(piUsername, piPassword).Single();
}
catch (Exception ex)
{
errorMsg = ex.Message + ex.InnerException.Message;
}
if (emp != null)
{
AppHelper.AppHelper.setUser(emp);
return true;
}
else
{
return false;
}
我的问题是我应该如何处理异常?
【问题讨论】:
标签: c# .net linq linq-to-sql stored-procedures