MS SQL函数没有将值返回给C#

时间:2016-07-08 19:51:05

标签: c# sql-server nullreferenceexception executescalar

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

答案 0 :(得分:1)

试试这个:

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