/// <summary> /// 输出SQL语句 /// 1.各sql参数对应实例化后拼起来就构成SqlString /// </summary> /// <param name="paramValues">第一个参数值必须是入口参数类对象,如果入口参数类为null,第一个参数填null.标准参数编号从1开始到9</param> /// <returns></returns> public string ToString(ISql isql, params object[] paramValues) { StringBuilder sql = new StringBuilder(); object paramValue = null; // 1.标准参数(mSqlParams[i].ParamSeq > 0),参数值按顺序 // 2.属性参数(mSqlParams[i].ParamSeq == 0),参数值按属性名称 // 3.末尾参数(mSqlParams[i].ParamSeq == -1),无参数 // 4.条件参数处理 // 如果不是空参数值,需要将参数值替换参数sql字段的参数占位符{0} // 如果是空参数,则不作处理 for (int i = 0; i < mSqlParams.Count; i++) { if (mSqlParams[i].ParamSeq != -1) { if (mSqlParams[i].ParamSeq == 0) { paramValue = ReflectUtil.GetPropertyValue(paramValues[0], mSqlParams[i].ParamName); } else //if (mSqlParams[i].ParamSeq > 0) { paramValue = paramValues[mSqlParams[i].ParamSeq]; } if (mSqlParams[i].IsConditionParam == true) { if (DbUtil.isnull(paramValue) == false) { sql.AppendFormat(mSqlParams[i].ParamSql, isql.ToString(paramValue)); } } else { sql.Append(mSqlParams[i].ParamSql).Append(isql.ToString(paramValue)); } } else { sql.Append(mSqlParams[i].ParamSql); } } // 排序 sql.Append(mOrderBy); return(sql.ToString()); }
public ISql From(ISql select, string alias) { _sql.AppendFormat("\nFROM\n(\n {0}\n) AS {1}", select.ToString().Replace("\n", "\n "), alias); return(this); }