Sql文はクラスを構築し、マルチフィールドが追加または修正された場合、sql文を組み立てるのが便利である.

8416 ワード

using System;
using System.Collections.Generic;
using System.Text;

namespace MSCL
{
    #region     
    /*
        List<Ftv> ftvlist = new List<Ftv>();
        ftvlist.Add(new Ftv("ErrorDetail", "     "));
        ftvlist.Add(new Ftv("ErrorFlag", "1"));
        ftvlist.Add(new Ftv("ErrorRemark","     ,      "));
        ftvlist.Add(new Ftv("ErrorTime", DateTime.Now.ToString()));
        ftvlist.Add(new Ftv("OprationTime", DateTime.Now.ToString()));
        //  
        string sql = MSCL.BuilderSql.InsertSql("AFM_SysLog", ftvlist);
        MSCL.SqlHelper.ExecSql(sql);
        //  
        string sql = MSCL.BuilderSql.UpdateSql("AFM_SysLog", ftvlist, "where ErrorID=166");
        MSCL.SqlHelper.ExecSql(sql);
        //  
        string sql = MSCL.BuilderSql.DeleteSql("AFM_SysLog", "where ErrorID=166");
        MSCL.SqlHelper.ExecSql(sql);
    */
    #endregion

    #region       
    /// <summary>
    ///       
    /// </summary>
    public class Ftv
    {
        /// <summary>
        ///     
        /// </summary>
        /// <param name="fieldName">   </param>
        /// <param name="fieldValue">   </param>
        /// <param name="isNum">      </param>
        public Ftv(string fieldName, string fieldValue, bool isNum)
        {
            this.fieldName = fieldName;
            this.fieldValue = fieldValue;
            this.isNum = isNum;
        }

        /// <summary>
        ///     
        /// </summary>
        /// <param name="fieldName">   </param>
        /// <param name="fieldValue">   </param>
        public Ftv(string fieldName, string fieldValue)
        {
            this.fieldName = fieldName;
            this.fieldValue = fieldValue;
        }

        private string fieldName;
        /// <summary>
        ///    
        /// </summary>
        public string FieldName
        {
            get { return fieldName; }
            set { fieldName = value; }
        }

        private bool isNum = false;
        /// <summary>
        ///     
        /// </summary>
        public bool IsNum
        {
            get { return isNum; }
            set { isNum = value; }
        }

        private string fieldValue;
        /// <summary>
        ///    
        /// </summary>
        public string FieldValue
        {
            get { return fieldValue; }
            set { fieldValue = value; }
        }
    }
    #endregion

    #region SQL      
    /// <summary>
    /// SQL      
    /// </summary>
    public class BuilderSql
    {

        /// <summary>
        ///     Insert  
        /// </summary>
        /// <param name="tableName">  </param>
        /// <param name="ftvlist">  list</param>
        /// <returns></returns>
        public static string InsertSql(string tableName, List<Ftv> ftvlist)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(" insert into ");
            sb.Append(tableName);
            sb.Append("(");
            for (int i = 0; i < ftvlist.Count; i++)
            {
                Ftv ftv = (Ftv)ftvlist[i];
                if (i != ftvlist.Count - 1)
                {
                    sb.Append(ftv.FieldName + ",");
                }
                else
                {
                    sb.Append(ftv.FieldName);
                }
            }
            sb.Append(") values(");
            for (int i = 0; i < ftvlist.Count; i++)
            {
                Ftv ftv = (Ftv)ftvlist[i];
                if (ftv.IsNum)
                {
                    if (i != ftvlist.Count - 1)
                    {
                        sb.Append(ftv.FieldValue + ",");
                    }
                    else
                    {
                        sb.Append(ftv.FieldValue);
                    }
                }
                else
                {
                    if (i != ftvlist.Count - 1)
                    {
                        sb.Append("'" + ftv.FieldValue + "',");
                    }
                    else
                    {
                        sb.Append("'" + ftv.FieldValue + "'");
                    }
                }
            }
            sb.Append(")");
            return sb.ToString();
        }


        /// <summary>
        ///     Update  
        /// </summary>
        /// <param name="tableName">  </param>
        /// <param name="ftvlist">  list</param>
        /// <param name="whereCondition">   where</param>
        /// <returns></returns>
        public static string UpdateSql(string tableName, List<Ftv> ftvlist, string whereCondition)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(" update ");
            sb.Append(tableName);
            sb.Append(" set");
            for (int i = 0; i < ftvlist.Count; i++)
            {
                Ftv ftv = (Ftv)ftvlist[i];
                if (i != ftvlist.Count - 1)
                {
                    if (ftv.IsNum)
                    {
                        sb.Append(" " + ftv.FieldName + "=" + ftv.FieldValue + ",");
                    }
                    else
                    {
                        sb.Append(" " + ftv.FieldName + "='" + ftv.FieldValue + "',");
                    }
                }
                else
                {
                    if (ftv.IsNum)
                    {
                        sb.Append(" " + ftv.FieldName + "=" + ftv.FieldValue + "");
                    }
                    else
                    {
                        sb.Append(" " + ftv.FieldName + "='" + ftv.FieldValue + "'");
                    }
                }
            }
            sb.Append(" " + whereCondition);
            return sb.ToString();
        }

        /// <summary>
        ///     Delete  
        /// </summary>
        /// <param name="tableName">  </param>
        /// <param name="whereCondition">   where</param>
        /// <returns></returns>
        public static string DeleteSql(string tableName, string whereCondition)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(" delete from ");
            sb.Append(tableName);
            sb.Append(" " + whereCondition);
            return sb.ToString();
        }

        /// <summary>
        ///   Select  
        /// </summary>
        /// <param name="tableName">      </param>
        /// <param name="whereCondition">   where</param>
        /// <returns></returns>
        public static string SelectSql(string tableName, string whereCondition)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(" select * from ");
            sb.Append(tableName);
            sb.Append(" " + whereCondition);
            return sb.ToString();
        }

        /// <summary>
        ///   Select  
        /// </summary>
        /// <param name="tableName">      </param>
        /// <param name="fieldString">      name,sex,age,(pay1+pay2) as totalpay</param>
        /// <param name="whereCondition">   where</param>
        /// <returns></returns>
        public static string SelectSql(string tableName, string fieldString, string whereCondition)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(" select " + fieldString + " from ");
            sb.Append(tableName);
            sb.Append(" " + whereCondition);
            return sb.ToString();
        }
    }
    #endregion
}