SqlParameters to DBContext executesqlcommand

本文关键字:executesqlcommand DBContext to SqlParameters | 更新日期: 2023-09-27 18:14:53

我们使用的是vs2012。

我写了下面的方法在dbcontext上执行executesqlcommand。

  //Check lock conditions for site part vrsm
  public bool CanLock(int spvId)
  {
        SqlParameter output = new SqlParameter("editMode", SqlDbType.Bit);
        output.Direction = ParameterDirection.Output;
        SqlParameter parameter = new SqlParameter("spvId", SqlDbType.Int);
        parameter.Value = spvId;
        ExecuteProcedure("exec [dbo].[prc_SitePartVrsn_CanLock] {0}, @editMode = {1} output", parameter, output);
        return Convert.ToBoolean(output.Value);
   }

这是一种非常古老的传递参数的方式。在c# 4.5和2012中,我们有更好的方法来做这件事吗?

请帮…

SqlParameters to DBContext executesqlcommand

除了您的语法会抛出错误之外,这几乎是唯一的方法。我已经更正了下面的语法:

SqlParameter output = new SqlParameter("editMode", SqlDbType.Bit);
output.Direction = ParameterDirection.Output;
SqlParameter parameter = new SqlParameter("spvId", SqlDbType.Int);
parameter.Value = spvId;
ExecuteProcedure("exec [dbo].[prc_SitePartVrsn_CanLock] @spvId, @editMode OUTPUT", parameter, output);
bool retVal = (bool)output.Value; // same result as using Convert.ToBoolean

edit除非你想使用

var p = new SqlParameter {
    ParameterName = "paramName",
    DbType = DbType.Bit,
    Direction = ParameterDirection.Output
};
相关文章:
  • 没有找到相关文章