/// <summary> /// 表示@ParamName1,@ParamName2和参数值 /// </summary> /// <param name="param">Append a whole object full of params to the dynamic EG: (new {A = 1, B = 2}) will add property A and B to the dynamic</param> /// <returns></returns> public DBBuilder Param(dynamic param) { if (param != null) { var dp = new DBParameterList(param); Param(dp.ParameterNames.ToArray()); this.Append(null, dp); } return(this); }
/// <summary> /// 创建以insert into开头语的SQL语句 /// </summary> /// <returns></returns> public static DBBuilder Insert(string tablename = null, dynamic valueParam = null) { var builder = new DBBuilder("INSERT INTO "); if (tablename != null && valueParam != null) { var dp = new DBParameterList(valueParam); builder.Table(tablename, dp.ParameterNames.ToArray()).Values(dp); } else if (tablename != null) { builder.Table(tablename); } return(builder); }
/// <summary> /// 表示ParamName1=@ParamValue1 and ParamName2=@ParamValue2 /// </summary> /// <param name="tableName"></param> /// <param name="param"></param> /// <param name="symbol"></param> /// <param name="joiner"></param> /// <param name="useDirectOutput"></param> /// <returns></returns> public DBBuilder Operate(string tableName = null, dynamic param = null, string symbol = "=", string joiner = "AND", bool useDirectOutput = true) { if (param != null) { var dp = new DBParameterList(param); if (useDirectOutput || tableName != null) { this.Append(dbAdapter => string.Join(" " + joiner + " ", dp.ParameterNames.Select(d => (tableName != null ? dbAdapter.FormatTable(tableName) + "." : "") + dbAdapter.FormatField(d) + " " + symbol + " " + dbAdapter.FormatValue(dp.Get <object>(d)) ))); } else { this.Append(dbAdapter => string.Join(" " + joiner + " ", dp.ParameterNames.Select(d => (tableName != null ? dbAdapter.FormatTable(tableName) + "." : "") + dbAdapter.FormatField(d) + " " + symbol + " " + dbAdapter.FormatParameter(d) ))).Append(null, dp); } } else { this.Append(symbol); } return(this); }