BuildQuery   A Simple SQL Query Tool
	
    
    
	 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BuildQuery
{
    /// <summary>
    /// ʹÓÃÌṩµÄÊý¾Ý½¨Á¢Ò»¸öSQL²éѯ
    /// </summary>
    public class BuildQuery
    {
        #region ÀàµÄ±äÁ¿
        int numFieldsCount, dispos;  //×Ö¶ÎÊýÁ¿£¬¼Ç¼¶ººÅµÄÊýÁ¿
        //
        //½«ËùÓеÄ×ֶκÍÖµ·ÅÈëµ½Dictionary¼¯ºÏÀÌá¸ß²Ù×÷ЧÂÊ
        //
        Dictionary<string, string> dicFields = new Dictionary<string, string>(); //×ֶμ¯ºÏ
        Dictionary<string, string> dicData = new Dictionary<string, string>();   //ÖµµÄ¼¯ºÏ
        Dictionary<string, bool> dicQuotes = new Dictionary<string, bool>();     //ÊÇ·ñÐèÒªÒýºÅµÄ¼¯ºÏ
        //
        //Ìõ¼þ×ֶμ°ÖµµÄ¼¯ºÏ
        //
        List<string> listIDFields = new List<string>();   //×ֶμ¯ºÏ
        List<string> listIDValues = new List<string>();   //ÖµµÄ¼¯ºÏ
        List<bool> listIDQuotes = new List<bool>();       //ÒýºÅ¼¯ºÏ
        List<string> listIDOperators = new List<string>();//²Ù×÷·û¼¯ºÏ
 
        string strTable;  //±íÃû
        Boolean IdentityCheck;  //ÊÇ·ñÐèÒª·µ»ØÒ»¸öеÄʵÌåÀà
        /// <summary>
        /// ·â×°Ò»¸öÊÇ·ñÐèҪеÄʵÌåÀà
        /// </summary>
        public Boolean GetIdentity
        {
            get { return IdentityCheck; }
            set { IdentityCheck = value; }
        }
        
        /// <summary>
        /// ·â×°·µ»ØÒ»¸ö²éѯµÄ½á¹û
        /// </summary>
        public string Table
        {
            get { return strTable; }
            set { strTable = value; }
        }
        #endregion
        /// <summary>
        /// ÀàµÄʵÀý»¯¹¹Ôì·½·¨
        /// </summary>
        public BuildQuery()
        {
        }
        /// <summary>
        /// ½¨Á¢Ò»¸ö²éѯǰÇå³ýDICTIONARY¼¯ºÏµÄËùÓÐÄÚÈÝ
        /// </summary>
        publ
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
     create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',          
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
 ......
	
    
        
    
    Ö÷¼ü (Primary Key) ÖеÄÿһ±Ê×ÊÁ϶¼ÊDZí¸ñÖеÄΨһֵ¡£»»ÑÔÖ®£¬ËüÊÇÓÃÀ´¶ÀÒ»ÎÞ¶þµØÈ·ÈÏÒ»¸ö±í¸ñÖеÄÿһÐÐ×ÊÁÏ¡£Ö÷¼ü¿ÉÒÔÊÇÔ±¾×ÊÁÏÄÚµÄÒ»¸öÀ¸Î»£¬»òÊÇÒ»¸öÈËÔìÀ¸Î» (ÓëÔ±¾×ÊÁÏûÓйØÏµµÄÀ¸Î»)¡£Ö÷¼ü¿ÉÒÔ°üº¬Ò»»ò¶à¸öÀ¸Î»¡£µ±Ö÷¼ü°üº¬¶à¸öÀ¸Î»Ê±£¬³ÆÎª×éºÏ¼ü (Composite Key)¡£ 
Ö÷¼ü¿ÉÒÔÔÚ½¨ÖÃбí¸ñʱÉ趨 (ÔËÓà CREA ......
	
    
        
    
    ÍâÀ´¼üÊÇÒ»¸ö(»òÊý¸ö)Ö¸ÏòÁíÍâÒ»¸ö±í¸ñÖ÷¼üµÄÀ¸Î»¡£ÍâÀ´¼üµÄÄ¿µÄÊÇÈ·¶¨×ÊÁϵIJο¼ÍêÕûÐÔ(referential integrity)¡£»»ÑÔÖ®£¬Ö»Óб»×¼ÐíµÄ×ÊÁÏÖµ²Å»á±»´æÈë×ÊÁÏ¿âÄÚ¡£ 
¾ÙÀýÀ´Ëµ£¬¼ÙÉèÎÒÃÇÓÐÁ½¸ö±í¸ñ£ºÒ»¸ö CUSTOMER ±í¸ñ£¬ÀïÃæ¼Ç¼ÁËËùÓй˿͵Ä×ÊÁÏ£»ÁíÒ»¸ö ORDERS ±í¸ñ£¬ÀïÃæ¼Ç¼ÁËËùÓй˿Ͷ©¹ºµÄ×ÊÁÏ¡£ÔÚÕâÀïµÄÒ»¸öÏÞÖÆ£¬ ......
	
    
        
    
    µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇѧµ½Á˽«ÈçºÎ°Ñ×ÊÁÏÓɱí¸ñÖÐÈ¡³ö¡£µ«ÊÇÕâЩ×ÊÁÏÊÇÈç¹û½øÈëÕâЩ±í¸ñµÄÄØ£¿ Õâ¾ÍÊÇÕâÒ»Ò³ (INSERT INTO) ºÍÏÂÒ»Ò³ (UPDATE) ÒªÌÖÂ۵ġ£ 
»ù±¾ÉÏ£¬ÎÒÃÇÓÐÁ½ÖÖ×÷·¨¿ÉÒÔ½«×ÊÁÏÊäÈë±í¸ñÖÐÄÚ¡£Ò»ÖÖÊÇÒ»´ÎÊäÈëÒ»±Ê£¬ÁíÒ»ÖÖÊÇÒ»´ÎÊäÈëºÃ¼¸±Ê¡£ ÎÒÃÇÏÈÀ´¿´Ò»´ÎÊäÈëÒ»±ÊµÄ·½Ê½¡£ 
ÒÀÕÕ¹ßÀý£¬ÎÒÃÇÏȽéÉÜÓï·¨¡£Ò»´ÎÊäÈ ......
	
    
        
    
    
[×ªÔØ]http://www.cnblogs.com/cn_wpf/£¬·Ç³£¸ÐлNineteen@newsmth µÄ·Ö·ÖÏí¡£ 
дÓÐЧÂʵÄSQL²éѯ£¨I£©
´óÐÍϵͳµÄÉú²ú»·¾³£¬Ò»°ãÇé¿öÏ£¬ÎÒÃÇÆÀ¼ÛÒ»Ìõ²éѯÊÇ·ñÓÐЧÂÊ£¬¸ü¶àµÄÊǹØ×¢Âß¼IO(ÖÁÓÚΪʲô£¬»ØÍ·²¹Ò»Æª)¡£ÎÒÃdz£Ëµ£¬“Òª½¨±ëº·µÄË÷Òý”¡¢“Ҫд¸ßЧµÄSQL”£¬Æäʵ×îÖÕÄ¿µÄ¾ÍÊÇÔÚÏà ......