/// <summary> /// SQLのWHERE条件文を生成する(可変長パラメータ版) /// </summary> /// <remarks> /// <para> /// 'WHERE'キーワード自身は付かない。 /// </para> /// </remarks> public string ToString(object[] paramlist) { if (paramlist == null) { throw new ArgumentException("Parameter idnew is null."); } if (paramlist.Length != NParams) { throw new ArgumentException(String.Format("Invalid number of parameters. (required={0}, supplied={1})", NParams, paramlist.Length)); } StringBuilder sb = new StringBuilder(); int i = 0; int ptr = 0; int nptr; string pword; while ((i < paramlist.Length) && ((pword = nextParamWord(expr, ptr, out nptr)) != null)) { sb.Append(expr.Substring(ptr, nptr - ptr)); string x = (paramlist[i] == null)?null:paramlist[i].ToString(); if (String.IsNullOrEmpty(x)) { if (pword == NumberParamWord) { x = "0"; } else { x = ""; } } sb.Append(DBCon.LikeEscape(x)); i++; ptr = nptr + pword.Length; } sb.Append(expr.Substring(ptr)); return(sb.ToString()); }