private static void AddParam(IDatabase db, string sql, object obj) { string _sql = sql; db.ClearParameters(); if (obj != null) { var t = obj.GetType(); if (t == typeof(Dictionary <string, object>)) { var dic = obj as Dictionary <string, object>; foreach (KeyValuePair <string, object> kv in dic) { string s = kv.Key.TrimStart('@'); string paramname = "@" + s; if (_sql.Contains(paramname)) { var pname = db.EncodeParameterName(s); if (paramname != pname) { _sql = _sql.Replace(paramname, pname); } var v = kv.Value; db.AddParameter(pname, v); } } } else if (t.IsClass && !t.Name.StartsWith("<>")) { IModelToParam toparam = GetModelToParam(t); _sql = toparam.To(db, _sql, obj); } else { IModelToParam toparam = new ModelToParam(); _sql = toparam.To(db, _sql, obj); } } db.CommandText = _sql; }
private static void AddParam(IDatabase db, string sql, object parameters, CommandType?commandType) { db.ClearParameters(); db.CommandType = commandType; string s = sql; if (parameters != null) { if (parameters is IEnumerable <KeyValuePair <string, object> > ) { IModelToParam toparam = new DicToParam(); s = toparam.To(db, sql, parameters); } else { IModelToParam toparam = new ModelToParam(); s = toparam.To(db, sql, parameters); } } db.CommandText = s; }
private void AddParam(IDbCommand command, string sql, object parameters) { if (parameters != null && (parameters is IEnumerable <DbParameter> || parameters is IEnumerable <IDataParameter>)) { if (parameters is IEnumerable <DbParameter> ) { var ps = parameters as IEnumerable <DbParameter>; foreach (var p in ps) { command.Parameters.Add(p); } } else { var ps = parameters as IEnumerable <IDataParameter>; foreach (var p in ps) { command.Parameters.Add(p); } } command.CommandText = sql; } else if (parameters != null && parameters is IEnumerable <KeyValuePair <string, object> > ) { IModelToParam toparam = new DicToParam(); toparam.To(this, command, sql, parameters); } else if (parameters != null) { IModelToParam toparam = new ModelToParam(); toparam.To(this, command, sql, parameters); } else { command.CommandText = sql; } }