代码之家  ›  专栏  ›  技术社区  ›  Bob Horn

SQL错误:不存在到已知托管提供程序类型的映射

  •  0
  • Bob Horn  · 技术社区  · 6 年前

    从对象类型存在 system.data,version=4.0.0.0,culture=neutral,

    我在google上搜索过,其中的示例是有人试图使用对象而不是文本值 SqlParameter someControl 而不是 someControl.Text toStatus fromStatus 已经是字符串。我不知道还有什么问题。我错过了什么?

    public void UpdateStatus(SearchCriteria searchCriteria, string fromStatus, string toStatus)
    {
      var sql = new StringBuilder();
      var sqlParameters = new List<SqlParameter>();
    
      sql.Append("UPDATE Schema.Table SET Status = @toStatus WHERE Status = @fromStatus");
    
      sqlParameters.Add(new SqlParameter("@toStatus", toStatus) { SqlDbType = SqlDbType.VarChar });
      sqlParameters.Add(new SqlParameter("@fromStatus", fromStatus) { SqlDbType = SqlDbType.VarChar });
    
      db.ExecuteSqlCommand(sql.ToString(), sqlParameters);
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   pfx    6 年前

    ExecuteSqlCommand 需要数组而不是 List

    db.ExecuteSqlCommand(sql.ToString(), sqlParameters.ToArray());