public void AddCondition(string i_strTenTruong, 
            object i_Value, eKieuDuLieu i_KieuDuLieu, eKieuSoSanh i_KieuSoSanh)
        {
            if (!(m_Conditions == null))
            {
                Array.Resize(ref m_Conditions, (m_Conditions.Length - 1) + 1 + 1);
            }
            else
            {
                m_Conditions = new ICondition[1];
            }
            int v_iNewItem = 0;
            v_iNewItem = m_Conditions.Length - 1;
            switch (i_KieuDuLieu)
            {
                case eKieuDuLieu.KieuNumber:
                    double v_iDouble = 0;
                    try
                    {
                        v_iDouble = System.Convert.ToDouble(i_Value);
                    }
                    catch
                    {
                        Debug.Assert(false, "Sai kieu roi, phai la so - tuanqt trong CMakeAndSelectCmd");
                    }
                    m_Conditions[v_iNewItem] = new CNumberCondition(i_strTenTruong, v_iDouble, i_KieuSoSanh);
                    break;

                case eKieuDuLieu.KieuString:
                    string v_iStr = "";
                    try
                    {
                        v_iStr = System.Convert.ToString(i_Value);
                    }
                    catch
                    {
                        Debug.Assert(false, "Sai kieu roi, phai la xau - tuanqt trong CMakeAndSelectCmd");
                    }
                    m_Conditions[v_iNewItem] = new CStringCondition(i_strTenTruong, v_iStr, i_KieuSoSanh);
                    break;
                case eKieuDuLieu.KieuDate:
                    DateTime v_iDate = default(DateTime);
                    try
                    {
                        v_iDate = System.Convert.ToDateTime(i_Value);
                    }
                    catch
                    {
                        Debug.Assert(false, "Sai kieu roi, phai la so - tuanqt trong CMakeAndSelectCmd");
                    }
                    m_Conditions[v_iNewItem] = new CDateCondition(i_strTenTruong, v_iDate, i_KieuSoSanh);
                    break;

                default:
                    Debug.Assert(false, "Chua code kieu nay");
                    break;
            }
        }
 public CNumberCondition(string i_strFieldName, double i_Value, eKieuSoSanh i_LoaiSoSanh)
 {
     m_strFieldName = i_strFieldName;
     m_Value = i_Value;
     m_LoaiSoSanh = i_LoaiSoSanh;
 }
 public CDateCondition(string i_strFieldName, DateTime i_Value, eKieuSoSanh i_LoaiSoSanh)
 {
     m_strFieldName = i_strFieldName;
     m_Value = i_Value;
     m_LoaiSoSanh = i_LoaiSoSanh;
 }