must declare the scalar variable '@custid' using dbcontext.Database.SqlQuery?

asp.net c# entity-framework sql

Question

I am trying to execute stored procedure from bcontext.Database.SqlQuery using EF5.

It is throwing an error must declare the scalar variable '@custid'

  var results = _MiscContext.Database.SqlQuery<int>(
              "exec sp_GetStaff @custid",
              customerNumber).ToList<int>();

SP returns 1 if customerNumber is staff otherwise it return empty row.

ALTER PROCEDURE [dbo].[sp_GetStaff]
    @custid varchar(12)
AS
BEGIN

    SET NOCOUNT ON;
SELECT 
1 AS [C1]
FROM  [dbo].[Staff] with (nolock)
WHERE [CUSTOMER_ID] = @custid


END

How to manage this?

1
15
12/4/2013 9:13:07 PM

Accepted Answer

Since you're using named parameters, you have to specify the matching name for the parameter you're passing.

var results = _MiscContext.Database.SqlQuery<int>(
    "exec sp_GetStaff @custid",
    new SqlParameter("custid", customerNumber)).ToList<int>();
28
12/4/2013 9:17:41 PM

Popular Answer

Try

var results = _MiscContext.Database.SqlQuery<int>(
              "exec sp_GetStaff {0}",
              customerNumber).ToList();


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow