C# 在MVC中调用并返回SQL函数值

C# 在MVC中调用并返回SQL函数值,c#,sql,asp.net-mvc,database,C#,Sql,Asp.net Mvc,Database,我正在使用ASP.NETMVC,SQL数据库模型和实体。我在数据库中编写了一个SQL函数,在控制器中编写了C#代码。我试图用C#调用一个SQL函数,并将返回int的SQL函数存储到C#int变量中。而我在努力工作时遇到了麻烦 我编写了测试代码,所以当我知道该做什么时,我可以使用这些知识来解决我遇到的问题 我试过研究,但到目前为止没有一个答案有用 SQL代码: CREATE FUNCTION dbo.TestFunction(@Number INT) RETURNS INTEGER AS BEG

我正在使用ASP.NETMVC,SQL数据库模型和实体。我在数据库中编写了一个SQL函数,在控制器中编写了C#代码。我试图用C#调用一个SQL函数,并将返回int的SQL函数存储到C#int变量中。而我在努力工作时遇到了麻烦

我编写了测试代码,所以当我知道该做什么时,我可以使用这些知识来解决我遇到的问题

我试过研究,但到目前为止没有一个答案有用

SQL代码:

CREATE FUNCTION dbo.TestFunction(@Number INT)
RETURNS INTEGER
AS 
BEGIN
    IF (@Number = 1)
    BEGIN
        RETURN 45
    END

    RETURN 20
END
C#代码:

我试图根据参数值返回20或45


那么,有没有合适的方法将SQL函数返回的值存储到C#variable中呢?

第二行中的函数表示函数返回一个位值,而您返回的是一个int。您应该将returns bit更改为returns int。

尝试-它返回结果数据集的
IEnumerable

似乎
ExecuteSqlCommand()
返回修改的行数

我的错,我是说整数。我改了。非常感谢你。成功了。我将代码更改为:var check=d.Database.SqlQuery(“SELECT dbo.TestFunction(1)”;if(check.Sum()==45)返回重定向到操作(“操作”、“控制器”);
using (websiteDBEntities d = new websiteDBEntities())
{
    int check = d.Database.ExecuteSqlCommand("SELECT dbo.TestFunction(1)");

    if (check == 45)
         return RedirectToAction("Action", "Controller");
}

return RedirectToAction("Action 2", "Controller");