Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 950
James123 Avatar asked Dec 04 '13 21:12

James123


2 Answers

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>();
like image 189
Ant P Avatar answered Oct 20 '22 09:10

Ant P


Try

var results = _MiscContext.Database.SqlQuery<int>(
              "exec sp_GetStaff {0}",
              customerNumber).ToList();
like image 23
Arturo Martinez Avatar answered Oct 20 '22 07:10

Arturo Martinez