private void DoJoinOnCondition(string condition, WhereObject where) { string[] array = condition.ToUpper().Split('='); string[] separator = { "(", ")", "AND", "OR" }; string itemstr = string.Empty; StringBuilder condformat = new StringBuilder(); object[] valus = { }; //string pattern = "^[0-9]*$"; //Regex regex = new Regex(pattern); if (array.Length > 0) { condformat.Append(array[0]); int index = -1; int n = 0; Int32 val = -1; for (int i = 1; i < array.Length; i++) { foreach (string sep in separator) { index = array[i].IndexOf(sep); if (index == -1) { continue; } break; } val = -1; if (index != -1) { itemstr = array[i].Substring(0, index).Trim(); if (itemstr.Contains("'") || LibSysUtils.IsNumberic(itemstr, out val)) { condformat.AppendFormat("={0} ", array[i].Replace(itemstr, "{" + n + "} ")); n++; Array.Resize(ref valus, valus.Length + 1); if (val == -1) { valus[valus.Length - 1] = itemstr.Trim(); } else { valus[valus.Length - 1] = val; } //valus[valus.Length - 1] =(val == -1 ? itemstr.Trim() : val); } else { condformat.AppendFormat("={0} ", array[i]); } } else { if (array[i].Contains("'") || LibSysUtils.IsNumberic(array[i], out val)) { condformat.AppendFormat("={0} ", array[i].Replace(array[i], "{" + n + "} ")); n++; Array.Resize(ref valus, valus.Length + 1); if (val == -1) { valus[valus.Length - 1] = val; } else { valus[valus.Length - 1] = array[i].Replace(SysConstManage.SingleQuotes, ' ').Trim(); } } else { condformat.AppendFormat("={0}", array[i]); } } } where.AppendWhereFormat(ResFactory.ResManager.SQLAnd, string.Format("({0})", condformat), valus); } }