예제 #1
0
 public void pObj_Set(string Name, Str_QueryCondition Value)
 {
     foreach (Str_QueryCondition Obj in this.mQc)
     {
         if (Name == Obj.Name)
         {
             Str_QueryCondition Inner_Obj = Obj;
             Inner_Obj = Value;
             return;
         }
     }
 }
        public void pObj_Set(string Name, Str_QueryCondition Value)
        {
            foreach (Str_QueryCondition Obj in this.mQc)
            {
                if (Name == Obj.Name)
                {
                    Str_QueryCondition Inner_Obj = Obj;
                    Inner_Obj = Value;
                    return;
                }

            }
        }
        /// <summary>
        /// Add a condition
        /// </summary>
        /// <param name="Name">
        /// Field Name on the data source
        /// </param>
        /// <param name="Operator">
        /// Operator to use (SQL valid operators)
        /// </param>
        /// <param name="Value">
        /// The condition value
        /// </param>
        /// <param name="DataType">
        /// Field Data Type
        /// </param>
        /// <param name="DefaultValue">
        /// Default value to use with ISNULL function
        /// </param>
        /// <returns></returns>
        public Str_QueryCondition Add(string Name, string Operator, object Value, string DataType = "", string DefaultValue = "")
        {
            if (Operator.Trim() == "")
            {
                if (DataType == "")
                { DataType = typeof(string).ToString(); }

                if (DataType.ToUpper() == typeof(string).ToString().ToUpper() || DataType.ToUpper() == typeof(string).Name.ToUpper())
                {
                    Operator = "Like";
                    Value = Value + @"%";
                }
                else
                { Operator = "="; }
            }

            if (DataType.ToUpper() == typeof(DateTime).ToString().ToUpper() || DataType.ToUpper() == typeof(DateTime).Name.ToUpper())
            {
                if (!Information.IsDate(Value))
                { Value = DBNull.Value; }
            }

            bool IsFound = false;
            foreach (Str_QueryCondition Obj in this.mQc)
            {
                if (Obj.Name == Name)
                {
                    IsFound = true;
                    break;
                }
            }

            string FieldName = Name;
            if (IsFound)
            {
                this.mCt++;
                Name = Name + this.mCt.ToString();
            }

            if (Operator.ToUpper() == "LIKE")
            {
                try
                {
                    if (Strings.Left(Value.ToString(), 1) == @"'"
                    || Strings.Left(Value.ToString(), 1) == @"""")
                    { Value = Strings.Mid(Value.ToString(), 2); }
                }
                catch { }

                try
                {
                    if (Strings.Right(Value.ToString(), 1) == @"'"
                    || Strings.Right(Value.ToString(), 1) == @"""")
                    { Value = Strings.Mid(Value.ToString(), 1, Value.ToString().Length - 1); }
                }
                catch { }
            }

            Str_QueryCondition NewQc = new Str_QueryCondition(Name, FieldName, Operator, Value, DataType, DefaultValue);
            this.mQc.Add(NewQc);
            return NewQc;
        }