internal static IDataCommand ApplyParameters( this IDataCommand cmd, ISqlBuilder query, IDictionary parameters, char parameterPrefix = '@') { if (cmd is null) { throw new ArgumentNullException(nameof(cmd)); } if (query is null) { throw new ArgumentNullException(nameof(query)); } cmd.Type = System.Data.CommandType.Text; if (parameters != null && parameters.Count > 0) { bool replace = parameterPrefix != DefaultPrefix; var enumerator = parameters.GetEnumerator(); enumerator.MoveNext(); var hasPrefix = enumerator.Key.ToString()[0] == DefaultPrefix; foreach (string key in parameters.Keys) { var parameterName = parameterPrefix + key; var value = parameters[key]; if (!replace) { cmd.AddParameter(parameterName, value); continue; } if (hasPrefix) { parameterName = parameterPrefix + key.Substring(1); query.ToStringBuilder().Replace(key, parameterName); cmd.AddParameter(parameterName, value); continue; } query.ToStringBuilder().Replace(DefaultPrefix + key, parameterName); cmd.AddParameter(parameterName, value); } } cmd.Text = query.ToString(true); return(cmd); }
internal static IDataCommand ApplyParameters( this IDataCommand cmd, ISqlBuilder query, IEnumerable <KeyValuePair <string, object> > parameters, char parameterPrefix = '@') { if (cmd is null) { throw new ArgumentNullException(nameof(cmd)); } if (query is null) { throw new ArgumentNullException(nameof(query)); } cmd.Type = System.Data.CommandType.Text; if (parameters != null) { bool replace = parameterPrefix != DefaultPrefix; bool hasPrefix = parameters.First().Key[0] == DefaultPrefix; foreach (var set in parameters) { var key = set.Key; var parameterName = parameterPrefix + key; var value = set.Value; if (!replace) { cmd.AddParameter(key, value); continue; } if (hasPrefix) { parameterName = parameterPrefix + key.Substring(1); query.ToStringBuilder().Replace(key, parameterName); cmd.AddParameter(parameterName, value); continue; } query.ToStringBuilder().Replace(DefaultPrefix + key, parameterName); cmd.AddParameter(parameterName, value); } } cmd.Text = query.ToString(true); return(cmd); }
private string AddParameter(IDataCommand cmd, object value) { var paramName = string.Format("@p{0}", _parameterCount); _parameterCount++; cmd.AddParameter(paramName, value); return paramName; }
internal static IDataCommand ApplyParameters( this IDataCommand cmd, ISqlBuilder query, IList <object> parameters, char parameterPrefix = '@', string placeholder = "[?]") { if (cmd is null) { throw new ArgumentNullException(nameof(cmd)); } if (query is null) { throw new ArgumentNullException(nameof(query)); } if (parameterPrefix == char.MinValue) { parameterPrefix = '@'; } var sql = query.ToString(true); if (parameters != null && parameters.Count > 0) { int index = 0; // TODO: write a parser sql = Regex.Replace(sql, placeholder, (m) => { var name = parameterPrefix + index.ToString(CultureInfo.InvariantCulture); cmd.AddParameter(name, parameters[index]); index++; return(name); }); } cmd.Text = sql; cmd.Type = CommandType.Text; return(cmd); }
/// <summary> /// 赋sql语句参数值 /// </summary> /// <param name="cmd"></param> /// <param name="paras"></param> public static void PrepareCommand(IDataCommand cmd, Hashtable paras) { IDbDataParameter para = null; if (paras != null) { foreach (DictionaryEntry de in paras) { para = cmd.CreateParameter(); para.ParameterName = de.Key.ToString(); para.Value = de.Value.ToString(); cmd.AddParameter(para); } } }
private void GenerateUpdateValues(StringBuilder builder, QueryTemplate template, IDataCommand cmd) { bool first = true; foreach (var valueItem in template.UpdateValues) { if (!first) builder.Append(","); var paramName = "@" + valueItem.ColumnName; builder.AppendFormat("{0} = {1}", valueItem.ColumnName, paramName); cmd.AddParameter(paramName, valueItem.Value); first = false; } builder.Append(" "); }
private void GenerateInsertValues(StringBuilder builder, QueryTemplate template, IDataCommand cmd) { builder.Append("VALUES ("); bool first = true; foreach (var valueItem in template.InsertValues) { if (!first) builder.Append(","); var paramName = "@" + valueItem.ColumnName; builder.Append(paramName); cmd.AddParameter(paramName, valueItem.Value); first = false; } builder.Append(") "); }