Функция MS SQL не возвращает значение в C#

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

CREATE FUNCTION [dbo].[fn_NumApplications] ()
RETURNS int
AS
BEGIN
DECLARE @numRecords int = 0
SELECT @numRecords = COUNT(A.id) FROM Applications A
RETURN @numRecords
END

и следующий код C# для вызова функции:

using (SqlConnection conn = new SqlConnection(mydbconnstring))
{
    using (SqlCommand cmd = new SqlCommand("dbo.fn_numApplications", conn))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        //execute
        conn.Open();
        string retVal = cmd.ExecuteScalar().ToString();
        conn.Close();
    }
}

Когда функция попадает в cmd.ExecuteScalar(), я получаю исключение NullReferenceException.

Я попытался вызвать функцию с и без "dbo." Я также попытался вызвать его с помощью cmd.ExecuteReader() без успеха.

Что здесь не так?

1 ответ

Попробуй это:

SqlCommand cmd = new SqlCommand("Select dbo.fn_numApplications()", conn)

Другие вопросы по тегам