Send Int parameter from C # to stored procedure

I have a stored procedure that takes an ID (INT) when I run a query using DbContext.Database.SqlQuery. I do not work. I have one more storage procedure, which was a script in a very similar template, except that it accepts the entire string parameter, maybe I'm doing something wrong with this Int pass parameter !!!!

model class

public class DeleteFunctionNavigation_SP_Map
{  
    public int FunctionID { get; set; }
}

Stored procedure

ALTER PROCEDURE [dbo].[DeleteFunctionsNavigation]

 @FunctionID INT,
 @Action_identity INT OUTPUT,
 @ActionInFunction_Count INT OUT,
 @Controller_identity INT OUTPUT

 AS
 BEGIN

SET NOCOUNT ON;

SELECT @Action_identity = Navigation_FunctionInAction.ActionID 
FROM Navigation_FunctionInAction
WHERE Navigation_FunctionInAction.Function_ID = @FunctionID
..........
//my other code here!

RETURN
END

C # class

public void DeleteNavigationFunctionByID(int _FunctionNavigationID)
{
    using (var dbContext = new FunctionContext())
    {

           var Action_identity_out = new SqlParameter("Action_identity", SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
           var ActionInFunction_Count_out = new SqlParameter("ActionInFunction_Count", SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
           var Controller_identity_out = new SqlParameter("Controller_identity", SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };

           var _query = dbContext.Database.SqlQuery<DeleteFunctionNavigation_SP_Map>("exec DeleteFunctionsNavigation @FunctionID, @Action_identity out, @ActionInFunction_Count out, Controller_identity out",
           new SqlParameter("@FunctionID", SqlDbType.Int).Value = _FunctionNavigationID,
           Action_identity_out,
           ActionInFunction_Count_out,
           Controller_identity_out
        );           
    }
}

Controller method

[HttpPost]
public ActionResult DeleteFunctionNavigationByID(int _selectedNavigationFunctionID)
{
    try
    {
        _FN_Services_a2.DeleteFunctionNavigationByID(_selectedNavigationFunctionID);
    }
    catch (Exception ex)
    {
        ModelState.AddModelError("", "Unable To Delete Requested Record!" + ex);
    }
    return RedirectToAction("SystemCoreHome");
}
+4
source share
1 answer

I found the reason it didn't work

1) - 2) SQL- ; :

public void DeleteNavigationFunctionByID(int _FunctionNavigationID)
   {
       using (var dbContext = new FunctionContext())
       {
           List<DeleteFunctionNavigation_SP_Map> _query;


           var Action_identity_out = new SqlParameter("Action_identity", SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
           var ActionInFunction_Count_out = new SqlParameter("ActionInFunction_Count", SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
           var Controller_identity_out = new SqlParameter("Controller_identity", SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };

           _query = dbContext.Database.SqlQuery<DeleteFunctionNavigation_SP_Map>("exec DeleteFunctionsNavigation @FunctionID, @Action_identity out, @ActionInFunction_Count out, @Controller_identity out",
                     new SqlParameter("@FunctionID", _FunctionNavigationID),
                     Action_identity_out,
                     ActionInFunction_Count_out,
                     Controller_identity_out
           ).ToList();

       }
}
0

All Articles