C# 使用DbContext将参数传递给存储过程
我有一个接受一个字符串参数的存储过程,下面是我的代码C# 使用DbContext将参数传递给存储过程,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我有一个接受一个字符串参数的存储过程,下面是我的代码 var databaseContext = (DbContext)this.ManagementContext; databaseContext.Database.Connection.Open(); using (var command = databaseContext.Database.Connection.CreateCommand()) { command.CommandText = "StoredProcName"; comman
var databaseContext = (DbContext)this.ManagementContext;
databaseContext.Database.Connection.Open();
using (var command = databaseContext.Database.Connection.CreateCommand())
{
command.CommandText = "StoredProcName";
command.CommandType = CommandType.StoredProcedure;
DbParameter param = command.CreateParameter();
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = "Vikash";
command.Parameters.Add(param);
using (var reader = command.ExecuteReader())
我的存储过程没有在参数中获取值。如果您的存储过程名为“StoredProcName”,则使用名为“Para1”的参数执行
然后,您将在“executedResult”中获得存储过程结果。您的代码中缺少了参数名。试试这个
using (var ctx = new StOflowContext())
{
ctx.Database.Connection.Open();
using (var command = ctx.Database.Connection.CreateCommand())
{
command.CommandText = "StoredProcedureName";
command.CommandType = CommandType.StoredProcedure;
DbParameter param = command.CreateParameter();
param.ParameterName = "@paramName";
param.DbType = DbType.String;
param.Direction = ParameterDirection.Input;
param.Value = "Vikash";
command.Parameters.Add(param);
using (var reader = command.ExecuteReader())
{
while(reader.Read())
{
}
}
}
}
我试过这种方法,效果很好
var dateParameter = new SqlParameter { ParameterName = "CastID", Value = castMember, DbType = DbType.String, Direction = ParameterDirection.Input };
command.Parameters.Add(dateParameter);
你没有给参数起名字。这对你没什么帮助,你能在这里举个小例子吗。这个例子对你合适吗?
var dateParameter = new SqlParameter { ParameterName = "CastID", Value = castMember, DbType = DbType.String, Direction = ParameterDirection.Input };
command.Parameters.Add(dateParameter);