点击这里给我发消息 点击这里给我发消息

asp.net中的多条件查询 hashtable

添加时间:2013-12-6
    相关阅读: 程序 SQL

无论是B/S还是C/S,在做查询时都有很多的条件,那就是一个多条件的查询,网上很多的多条件查询都是用大量的if和else,那样不仅是代码繁杂,而且阅读起来很是不便,特别是当条件越多的时候(用到10个以上),我想。那些if和else就是拦路虎了,用不好,影响了整个程序的运行......

现为大家介绍一种用HashTable做的多条件查询,大家都知道.HashTable是包含键值对的,我们何不把要查询的条件用HashTable来封装了?然后再来遍历HashTable,不就可以了吗?有人会说,你怎么知道别人的查询条件是输入了几个了?很简单啊,因为HashTable的一个特性就是不能放入空值,,当有空值时就不用放入HashTable了,这样HashTable里面放的都是输入的要查询的条件!把HashTable的健值用来作为查询的条件就OK了!!!

[csharp]
/// <summary> 
  /// 根据条件哈希表,构造SQL语句中的AND条件子句 
  /// </summary> 
  /// <param name="conditionHash">条件哈希表</param> 
  /// <returns>AND关系条件子句</returns> 
        public static String GetConditionClause(Hashtable queryItems) 
        { 
 
            int Count = 0; 
            String Where = ""; 
 
            //根据哈希表,循环生成条件子句 
            foreach (DictionaryEntry item in queryItems) 
            { 
                if (Count == 0) 
                    Where = " Where "; 
                else 
                    Where += " And "; 
 
                //根据查询列的数据类型,决定是否加单引号 
                if (item.Value.GetType().ToString() == "System.String" || item.Value.GetType().ToString() == "System.DateTime") 
                { 
                    Where += item.Key.ToString() 
                        + " Like " 
                        + SqlStringConstructor.GetQuotedString("%" 
                        + item.Value.ToString() 
                        + "%"); 
                } 
                else 
                { 
                    Where += item.Key.ToString() + "= " + item.Value.ToString(); 
                } 
                Count++; 
            } 
            return Where; 
        } 
 

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册