[英]Passing parameter to Stored Procedure using DbContext
我有一个接受一个字符串参数的存储过程,下面是我的代码
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())
我的存储过程没有在参数中获得价值。
您在代码中错过了ParameterName。 尝试这个,
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())
{
}
}
}
}
如果您的存储过程名为“ StoredProcName”,并使用名为“ Para1”的参数执行。
var executedResult =
((IObjectContextAdapter) this).databaseContext.ExecuteStoreCommand(
"StoredProcName @Para1", "Vikash");
然后,您将在“ executedResult”中获得存储过程的结果。
我尝试过这种方式,并且效果很好。
var dateParameter = new SqlParameter { ParameterName = "CastID", Value = castMember, DbType = DbType.String, Direction = ParameterDirection.Input };
command.Parameters.Add(dateParameter);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.