используя c #, как я могу выполнить пользовательскую функцию tsql и получить ее возвращаемое значение? - PullRequest
3 голосов
/ 25 октября 2011

У меня есть следующая функция tsql:

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

    declare @IsEligible bit
        --some calculation
    return @IsEligible


end 

Используя c #, это способ вызова этой функции tsql и получения ее возвращаемого значения?

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

Ответы [ 2 ]

4 голосов
/ 25 октября 2011

Поскольку вы вызываете функцию, вы должны вызывать ее, используя встроенный sql, а не хранимую процедуру.Поэтому вместо вызова хранимого процесса вы бы вызвали

select dbo.fn_myFunc(?) as result

Вы также можете создать хранимую процедуру, которая просто завершает вызов функции.

0 голосов
/ 25 октября 2011

Это то же самое, если вы используете прикладной блок доступа к данным из библиотеки предприятия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...