문제

Enterpise 라이브러리로 SQL 사용자 정의 기능을 실행하는 방법이 있습니까? Database.ExecutesCalar ()를 시도했지만 어떤 이유로 든 NULL을 반환합니다.

이것은 내 기능입니다.

Database db = DatabaseFactory.CreateDatabase("ConnectionString");
DbCommand cmd = db.GetStoredProcCommand("FunctionName");
db.AddInParameter(cmd, "Value1", DbType.String, Param1Value);
db.AddInParameter(cmd, "Value2", DbType.String, Param2Value);
return Convert.ToBoolean(db.ExecuteScalar(cmd)); 

여기서 DB.ExecutesCalar (CMD) 메소드가 NULL을 반환합니다. 이것은 저장 절차에서 발생하지 않습니다.

그건 그렇고, 버전 4.0을 사용하고 있습니다

감사.

도움이 되었습니까?

해결책

함수에서 결과를 선택하고이를 실행하는 SELECT 문을 작성해야합니다.

"functionName ( @value1, @value2)에서"선택 * "

또는 기능 호출을 절차로 래핑하고 절차를 호출 할 수 있습니다. 나는 이것을 선호합니다.

다른 팁

스칼라 함수의 경우

SELECT FuncName(@Param1)

반면 테이블 값 함수가 될 것입니다

SELECT * FROM FuncName(@Param1)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top