У меня ошибка при попытке передать параметр хранимой процедуре с помощью DbCommand
Ошибка возвращена:
Процедура или функция «Имя_процедуры» ожидает параметр «@TEID», который не был предоставлен.
Это мои параметры процедуры:
@PageNumber INT = 1,
@PageSize INT = 50,
@StartTime nvarchar(max) = -1 ,
@EndTime nvarchar(max) = -1 ,
@Month NVARCHAR(2) = -1,
@Year NVARCHAR(4) = -1,
@Day NVARCHAR(2) = -1,
@Hour NVARCHAR(2)=-1,
@TEID nvarchar(max) ,
@IgnoreIdlingTime int=120,
@DrivingTime int=300,--5 minutes by default
@CalculationFactor nvarchar(10)='speed'
Мой код для выполнения процедуры и передачи параметров:
using (var context = new GPSModel())
{
context.Database.Initialize(force: false);
// Create a SQL command to execute the stored procedure
var cmd = context.Database.Connection.CreateCommand();
cmd.CommandText = "Procedure_Name";
DbParameter TEIDParam = cmd.CreateParameter();
TEIDParam.ParameterName = "@TEID";
TEIDParam.DbType = System.Data.DbType.String;
TEIDParam.Direction = ParameterDirection.Input;
TEIDParam.Value = TEID;
cmd.Parameters.Add(TEIDParam);
context.Database.Connection.Open();
var reader = cmd.ExecuteReader();
}
Я пытался удалить знак @
и отправить SqlParameter
вместо DbParameter
, но проблема осталась.
Есть ли другой способ сделать это, когда моя хранимая процедура очень сложна и содержит несколько наборов?
Спасибо...
cmd.CommandType = CommandType.StoredProcedure;
- person Evk   schedule 02.04.2018