2011-10-25 2 views
3

나는 다음 TSQL 기능이 있습니다C#을 사용하여 어떻게 tsql 사용자 함수를 실행하고 반환 값을 얻을 수 있습니까?

ALTER FUNCTION [dbo].[fn_MyFunc] (
     @AccountId varchar(50) 
) 
returns bit 
as 
begin 

    declare @IsEligible bit 
     --some calculation 
    return @IsEligible 


end 

는, C#을 사용하는 방식이 TSQL 함수를 호출하고 반환 값을 얻을 수 있다는 것입니다을? 당신이 당신이 가진 것 함수가 인라인 SQL보다는 저장 프로 시저를 사용하여 전화를 호출하기 때문에 엔터프라이즈 라이브러리 데이터 액세스 응용 프로그램 블록

+0

확실히 그 함수를 호출하는 방법인지 테스트 할 수 있습니까? 이 코드를 실행할 때 어떤 일이 발생합니까? 올바른 결과를 얻은 다음 예외가 발생하면 그 결과는 ... – Chris

답변

4

를 사용하는 경우 방법이다

 Database database = DatabaseFactory.CreateDatabase("DB"); 
    using (DbCommand dbCommand = database.GetStoredProcCommand("fn_MyFunc")) 
        { 
         database.AddInParameter(dbCommand, "@AccountId", DbType.String, "1234"); 
bool returnedVAlue = (bool)dbCommand.ExecuteScalar(); 
} 
+0

내 잘못, 그건 충분히 간단했다 생각하지 않아도 됐어. –

+0

은 올바른 구문을 가져올 수 없습니다. –

+0

함수를 호출하는 저장 프로 시저를 만드는 것이 더 쉽습니다. –

0

. 그래서 오히려 저장된 프로 시저를 호출하는 것보다 당신은

select dbo.fn_myFunc(?) as result 

당신은 또한 단지 함수의 호출을 래핑하는 저장 프로 시저를 만들 수 부를 것이다.

+0

그는 저장 프로 시저가 아닌 함수를 호출하고 있습니다. 그 코드는 작동하지 않아야합니다. –

관련 문제