使用c#,如何执行sql用户函数并获取其返回值?

时间:2011-10-25 10:03:46

标签: c# sql

我有以下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 个答案:

答案 0 :(得分:4)

因为您正在调用函数,所以必须使用内联sql而不是存储过程来调用它。因此,不是调用存储过程,而是调用

select dbo.fn_myFunc(?) as result

您还可以创建一个仅包装对函数的调用的存储过程。

答案 1 :(得分:0)

如果您使用企业库数据访问应用程序块

,那就是这种方式