MVC中调用并返回SQL函数值

我正在使用 ASP.NET MVC、带有模型和实体的 SQL 数据库。我在数据库中编写了 SQL 函数,在控制器中编写了 C# 代码。我正在尝试使用 C# 调用 SQL 函数,并将 SQL 函数返回的 int 存储到 C# int 变量。我很难尝试去解决它。


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


我尝试过研究,但到目前为止,所有答案都没有帮助。


SQL代码:


CREATE FUNCTION dbo.TestFunction(@Number INT)

RETURNS INTEGER

AS 

BEGIN

    IF (@Number = 1)

    BEGIN

        RETURN 45

    END


    RETURN 20

END

C#代码:


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");

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


那么,是否有正确的方法将 SQL 函数返回值存储到 C# 变量中?


小唯快跑啊
浏览 127回答 2
2回答

慕斯王

Try d.Database.SqlQuery()- 它返回IEnumerable结果数据集。似乎ExecuteSqlCommand()返回修改的行数。

慕丝7291255

第二行中的函数表示该函数返回一个位值,而您返回一个 int 。您应该将 returns bit 更改为 returns int。
打开App,查看更多内容
随时随地看视频慕课网APP