SQL查询条件生成器

本文介绍了SQL查询条件生成器的用途,它主要用于数据库编程中的条件查询。文章列举了生成器的源码,包括IFilter接口及其子接口IFilterString,这些接口定义了用于构建查询条件的属性和方法。
摘要由CSDN通过智能技术生成

 在数据库的编程中,常常要对数据库的数据根据条件查询,查询条件生成器正是因此而生。

一、查询条件生成器源码

        查询条件生成器由以下六个文件组成

       1、接口IFilter.cs

  1. using System;
  2. namespace SearchFilter
  3. {
  4.     /// <summary>
  5.     /// IFilter 的摘要说明
  6.     /// 描述: 定义属性
  7.     /// 作者: xlFancy
  8.     /// 日期: 2008.05.10
  9.     /// 版本: 1.0.0.0
  10.     /// </summary>
  11.     public interface IFilter
  12.     {
  13.         string Name { get;}
  14.         string Text { get;}
  15.         DataType DataType { get;}
  16.         string CompareCode { set;get;}
  17.         string LogicalCode { set;get;}
  18.         string BracketCode { set;get;}
  19.         string Value { set;get;}
  20.     }
  21. }

       2、接口IFilterString.cs

  1. using System;
  2. namespace SearchFilter
  3. {
  4.     /// <summary>
  5.     /// IFilterString 的摘要说明
  6.     /// 描述: 定义属性,索引,方法
  7.     /// 作者: xlFancy
  8.     /// 日期: 2008.05.10
  9.     /// 版本: 1.0.0.0
  10.     /// </summary>
  11.     public interface IFilterString
  12.     {
  13.         int FieldCount { get; }
  14.         IFilter this[int Index] { setget; }
  15.         IFilter this[string Key] { setget; }
  16.         /// <summary>
  17.         /// 返回查询条件表达式,能自动删除错误的或不匹配的左括弧、右括弧
  18.         /// </summary>
  19.         string FilterText { get; }
  20.         void FilterClear();
  21.     }
  22. }

       3、数据类型枚举EnumConst.cs

  1. using System;
  2. namespace SearchFilter
  3. {
  4.     /// <summary>
  5.     /// DataType 的摘要说明
  6.     /// 描述: 定义数据类型
  7.     /// 作者: xlFancy
  8.     /// 日期: 2008.05.10
  9.     /// 版本: 1.0.0.0
  10.     /// </summary>
  11.     public enum DataType
  12.     {
  13.         /// <summary>
  14.         /// 布尔类型
  15.         /// </summary>
  16.         Boolen,
  17.         /// <summary>
  18.         /// 日期类型
  19.         /// </summary>
  20.         DataTime,
  21.         /// <summary>
  22.         /// 字符类型
  23.         /// </summary>
  24.         String,
  25.         /// <summary>
  26.         /// 数值类型
  27.         /// </summary>
  28.         Number
  29.     }
  30. }

       4、实现接口IFilter类Filter.cs

  1. using System;
  2. namespace SearchFilter
  3. {
  4.     /// <summary>
  5.     /// Filter 的摘要说明
  6.     /// 功能: 实现IFilter所定义的属性
  7.     /// 作者: xlFancy
  8.     /// 日期: 2008.05.10
  9.     /// 版本: 1.0.0.0
  10.     /// </summary>
  11.     class Filter:IFilter
  12.     {
  13.         private string _name = "";
  14.         private string _text = "";
  15.         private DataType _datatype = DataType.String;
  16.         private string _comparecode = "LIKE";
  17.         private string _logicalcode = "";
  18.         private string _bracketcode = "";
  19.         private string _value = "";
  20.         /// <summary>
  21.         /// 初始化供查询的字段
  22.         /// </summary>
  23.         /// <param name="FieldName">字段名称</param>
  24.         /// <param name="FieldText">字段文本,用于显示</param>
  25.         /// <param name="FieldType">字段类型,只能是DataType枚举值</param>
  26.         public Filter(string FieldName, string FieldText, DataType FieldType)
  27.         {
  28.             _name=FieldName;
  29.             _text=FieldText;
  30.             _datatype=FieldType;
  31.         }
  32.         public string Name { get { return _name; } }
  33.         public string Text { get { return _text; } }
  34.         public DataType DataType { get { return _datatype; } }
  35.         public string CompareCode
  36.         {
  37.             get { return _comparecode; }
  38.             set { _comparecode = value; }
  39.         }
  40.         public string LogicalCode 
  41.         { 
  42.             get { return _logicalcode; }
  43.             set { _logicalcode = value; }
  44.         }
  45.         public string BracketCode 
  46.         {
  47.             get { return _bracketcode; }
  48.             set { _bracketcode = value; }
  49.         }
  50.         public string Value
  51.         {
  52.             get 
  53.             {
  54.                 if (this.CompareCode =="LIKE" || this.CompareCode =="NOT LIKE")
  55.                 {
  56.                     return string.Format("'%{0}%'", _value);
  57.                 }
  58.                 else
  59.                 {
  60.                     if (this.DataType == DataType.Boolen || this.DataType == DataType.Number) return _value;
  61.                     else return string.Format("'{0}'", _value);
  62.                 }
  63.             }
  64.             set { _value = value; }
  65.         }
  66.     }
  67. }

       5、实现接口IFilterString类FilterString.cs

  1. using System;
  2. using System.Text;
  3. using System.Collections;
  4. namespace SearchFilter
  5. {
  6.     /// <summary>
  7.     /// FilterString 的摘要说明
  8.     /// 功能: 实现IFilterString所定义的属性,索引,方法
  9.     /// 作者: xlFancy
  10.     /// 日期: 2008.05.10
  11.     /// 版本: 1.0.0.0
  12.     /// </summary>
  13.     public class FilterString:IFilterString
  14.     {
  15.         private int _count=0;
  16.         private IFilter[] _filter;
  17.         private Hashtable _result = new Hashtable();
  18.         
  19.         /// <summary>
  20.         /// 初始化查询条件生成器
  21.         /// </summary>
  22.         /// <param name="FieldCount">提供选择的字段数量</param>
  23.         public FilterString(int FieldCount)
  24.         {
  25.             _count=FieldCount;
  26.             _filter=new Filter[FieldCount];
  27.         }
  28.         public int FieldCount { get { return _count; } }
  29.         public IFilter this
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值