用于在C#中执行SQL FUNCTION(不是SP和)的代码

时间:2013-06-06 15:05:32

标签: c# sql-server

我在DB中有一个返回0/1的函数(不是存储过程)。如何在C#中检索此值?

ALTER function dbo.code
(@_code  INT)
RETURNS INT
AS
BEGIN
DECLARE @result bt
    IF EXISTS (
           SELECT fld_code
           FROM   client.TBL_Table(NOLOCK)
           WHERE  code = @_code
                  AND used = 0
       )
        SET @result = 1
    ELSE
        SET @result = 0

    RETURN @result
END

2 个答案:

答案 0 :(得分:2)

使用以下查询创建命令

SELECT [dbo].[code] as No

然后使用SqlDataReader读取返回的值。

答案 1 :(得分:2)

这将从您的函数中获得一些返回值。确保添加:

using System.Data.SqlClient 

到你的文件。

using (SqlConnection conn = new SqlConnection(yourConnectionString))
using (SqlCommand cmd = new (SqlCommand("SELECT [dbo].[code] as returnValue", conn))
{
    conn.open();
    var returnValue = cmd.ExecuteReader() as int;
    //Do something with your value
}

有关SqlConnection字符串的详细信息,请查看SQL Connection Strings