Tuesday, 10 September 2013

Procedure or function expects parameter which was not supplied

Procedure or function expects parameter which was not supplied

I am getting this error when I try to run a stored procedure from mvc
project:
The data reader is incompatible with the specified
'table_testModel.uspMarket_test'. A member of the type, 'Account', does
not have a corresponding column in the data reader with the same name.
I am using Entity Framework database-first approach.
This is my stored procedure :
Create PROCEDURE [dbo].[uspMarket_test]
@UserID INT OUTPUT,
@Session VARCHAR(36)
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP 1
FirstName, LastName, grant
FROM dbo.test_Users AS U
WHERE
U.userID = @UserID
AND CAST (U.userHashKey as varchar(36)) = @Session;
select
GS.Account, GSA.Permissions
from user_name GS
Inner join user_name_Apps GSA on GS.ID = GSA.ID
where GS.UserID = @UserID
UPDATE dbo.test_Users
SET grant = 0
WHERE
userID = @UserID
;
END
Update : I followed MSDN tutorial of calling mutiple result sets from this
link. This is my code :
public void permissionsmultiple(string sess)
{
using (var db = new Tracker_Entities())
{
var cmd = db.Database.Connection.CreateCommand();
cmd.CommandText = "[dbo].[uspMarket_test]";
try
{
db.Database.Connection.Open();
var reader = cmd.ExecuteReader();
var userDetails =
((IObjectContextAdapter)db).ObjectContext.Translate<Users_lists>(reader,"Tracker_Entities",MergeOption.AppendOnly);
reader.NextResult();
var perm =
((IObjectContextAdapter)db).ObjectContext.Translate<users_details>(reader,"Tracker_Entities",MergeOption.AppendOnly);
// This is where i am passing parameters
using (var ctx2 = new Tracker_Entities())
{
ctx2.uspMarket_test(new ObjectParameter("UserID", typeof(int)),
sess);
ctx2.SaveChanges();
}
}
finally
{
db.Database.Connection.Close();
}
}
}
But when i run i am getting this error :
Procedure or function 'Market_test' expects parameter '@UserID', which was
not supplied.
So if i follow above approach where i should pass parameter? please help me.

No comments:

Post a Comment