0
У меня есть следующие функции MS SQL:MS SQL функций, не возвращает значение C#
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() без успеха.
Что здесь не так?
Не только вам нужна скобка и SELECT, ключевое слово, но если у вас есть чувствительна к регистру сверки это будет сгенерировано исключение, потому что имя функции не имеет капитал N в вашем коде C#. Конечно, я бы предложил сделать это встроенной табличной функцией. –
Вам не хватает инструкции SELECT перед dbo.MyFunction. Сначала вы должны запустить код в SSMS ......, чтобы узнать синтаксис – granadaCoder