C#添加查找条件类 AddCondition(string a_strFieldName, string a_strValue, SqlOperator a_e

前言: 博客一直空著不好看就把自己在博客園裏面寫的拉過了占個位子。是一篇代码,主要是如何加查询条件的類,估计这样的文章已经有了不少,我是繁體下面打的字,裏面代碼看上去有些走形,算是篇水帖。
要想更加实用就自己改改

二个重载方法:
search.AddCondition("Fieldname", "value"),
search.AddCondition("Fieldname", "value", SqlOperator.gLessThanOrEqual, false);

 


SearchCondition 类:

using System; 
using System.Collections.Generic; 
using System.Text; 
  
namespace DBHelp 
{ 
    public enum SqlOperator 
    { 
        aEqual = 1, 
        cNotLike, 
        bLike,  
        dMoreThan, 
        eLessThan, 
        fMoreThanOrEqual, 
        gLessThanOrEqual, 
        hNotEqual, 
        In, 
        NotIn 
    } 
  
   public  class SearchCondition 
    { 
        private StringBuilder l_strSQLCdtn = new StringBuilder(); 
        private readonly SqlOperator sqlOperator; 
  
        public SqlOperator SqlOperator 
        { 
            get { return sqlOperator; } 
        }  
  
        public StringBuilder L_strSQLCdtn 
        { 
            get { return l_strSQLCdtn; } 
            set { l_strSQLCdtn = value; } 
        } 
  
        /// <summary> 
        ///  =  string 
        /// </summary> 
        /// <param name="a_strFieldName">字段名稱</param> 
        /// <param name="a_strValue">字段的值</param> 
        public void AddCondition(string a_strFieldName,string a_strValue) 
        { 
            l_strSQLCdtn.Append(" and  " + a_strFieldName+ " = '" +  a_strValue +"'");             
        } 
  
        /// <param name="a_strFieldName">字段名稱</param> 
        /// <param name="a_strValue">字段的值 case  'In'  a_strValue = "'asdf','asdf','sadf'"</param> 
        /// <param name="a_enumOperator">看SqlOperator操作符的提示</param> 
        /// <param name="a_bIsAnd"> if(a_bIsAnd) is  " and "   else is "or" </param> 
        public void AddCondition(string a_strFieldName, string a_strValue, SqlOperator a_emOperator,bool a_bIsAnd) 
        { 
            string l_strConnSymbol = a_bIsAnd ? " and " : " or "; 
  
            switch (a_emOperator.ToString()) 
            { 
                case "aEqual": 
                     l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " =  '" + a_strValue + "'"); 
                    break; 
                case "bLike": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " like  '%" + a_strValue + "%'"); 
                    break; 
                case "cNotLike": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " not like  '%" + a_strValue + "%'"); 
                    break; 
                case "dMoreThan": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " >  '" + a_strValue + "'"); 
                    break; 
                case "eLessThan": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " < '" + a_strValue + "'"); 
                    break; 
                case "fMoreThanOrEqual": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " >=  '" + a_strValue + "'"); 
                    break; 
                case "gLessThanOrEqual": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " <= '" + a_strValue + "'"); 
                    break; 
                case "hNotEqual": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " !=  '" + a_strValue + "'"); 
                    break; 
                case "In": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " in  (" + a_strValue + ")"); 
                    break; 
                case "NotIn": 
                    l_strSQLCdtn.Append(l_strConnSymbol + a_strFieldName + " in  (" + a_strValue + ")"); 
                    break; 
                default: 
                    break; 
            } 
        } 
     
    } 
}

 


用法說明:

           private void Form1_Load(object sender, EventArgs e)
        {
            SearchCondition search = new SearchCondition();            
            search.AddCondition("Field1", "123");
            search.AddCondition("Field2", "'adsf','adf'", SqlOperator.In,true);
            search.AddCondition("Field3", "123",SqlOperator.fMoreThanOrEqual,true);
            search.AddCondition("Field3", "123", SqlOperator.gLessThanOrEqual, false);
            string l_strTest = search.L_strSQLCdtn.ToString();

         } 
            

 

 

 

 运行结果:

 

 and  Field1 = '123' and Field2 in  ('adsf','adf') and Field3 >=  '123' or Field3 <= '123'

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值