2010-12-28 3 views
0
내가 VS 2010 년 Linq는 2 SQL을 사용하고

을 반환하고, 나는 데 문제가확인하면 절차 값

ALTER PROCEDURE dbo.CheckUser 
(
@username varchar(50), 
@password varchar(50) 
) 
AS 
    SELECT * FROM Users Where [email protected] AND [email protected] 

가가를 발생하는 사용자 이름과 암호를 확인하려면 다음 저장 프로 시저를 사용자 이름과 암호가 올바르지 않은 경우 예외입니다. try/catch를 사용하여 프로 시저가 값을 반환했는지 여부를 확인하는 대신 반환 값이 있는지 확인하고 싶습니다.

코드 (C#)로이 체크를 수행해야합니까? 아니면 SQL로 할 수있는 방법이 있습니까?

감사합니다.

편집 : 예외를 던지는 코드 : 사용자 이름과 암호 조합 (저장 프로 시저의 이름에서)이있는 경우 알에만 관심이있는 것처럼

MyDatabaseDataContext db = new MyDatabaseDataContext(); 
String username = "username"; 
String password = "password"; 
User u = db.CheckUser(username, password); // Exception 
+0

저장 프로 시저에 액세스하는 데 사용하는 코드를 표시 할 수 있습니까? 그리고 예외는? – David

+0

예. 내 게시물을 수정하겠습니다. – Eric

+0

예외는 무엇입니까? – David

답변

1

것 같습니다. 그래서 당신은 아마 그냥 조합 레코드의 수를 반환합니다

ALTER PROCEDURE dbo.CheckUser 
(
@username varchar(50), 
@password varchar(50) 
) 
AS 
    SELECT count(1) FROM Users Where [email protected] AND [email protected] 

을 수행해야합니다. 그런 다음 코드에서 저장 프로 시저에 의해 반환 된 스칼라를 확인할 수 있으며 0이면 해당 사용자가 없습니다.