c#SQL里的那些事

//方便用来拼接sql的 不知道用处大不大,,有测试后 有很多bug  待改进 欢迎指出
    public abstract class CreateSQLWhere
    {   
        /// <summary>
        /// 查询时默认条件
        /// </summary>
        public static string DefaultText = "";
        /// <summary>
        /// 查询条件汇总
        /// </summary>
        public static string SQLText = "";
        /// <summary>
        /// 查询表及其字段
        /// </summary>
        public static string SQL = "";
        public static bool AllRecord;

        /// <summary>
        /// T-SQL拼接
        /// </summary>
        /// <param name="Text">sql</param>
        /// <returns>T-SQL</returns>
        public static string AddParam(string Text)
        {
            bool bl = false;
            bl = !((DefaultText.Length == 0) && (SQL.Length == 0));
            return SQLText = (SQLText + (bl ? " and " : " where ") + Text);
        }

        /// <summary>
        /// 比较字段与要查询的值
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="Value1">值1</param>
        /// <param name="Value2">值2</param>
        /// <returns>T-SQL</returns>
        public static string AddParamStr(string FieldName, string Value1,string Value2)
        {
            string str = null;
            string sql = "";
            //V = Value.Trim();
            if (Value1.Length != 0 && Value1 != "*")
            {
                str = FieldName + ">= '" + Value1 + "'";
            }
            if (Value2.Length != 0 && Value2 != "*")
            {
                if (str.Length != 0)
                {
                    str = str + " and " + FieldName + "<= '" + Value2 + "'";
                }
                else
                {
                    str = FieldName + "<= '" + Value2 + "'";
                }
            }
            if (str != "")
            {
              sql = AddParam(str);
            }
            return sql;
        }

        /// <summary>
        /// Int类型查询
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="val">数值</param>
        /// <returns>T-SQL</returns>
        public static string AddParamInt(string FieldName, int val)
        {
            return AddParam(FieldName + " = " + val.ToString());
        }

        /// <summary>
        /// Int类型数值2者之前查询(FieldName between 值1 and 值2)
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value1">值1</param>
        /// <param name="value2">值2</param>
        /// <returns>T-SQL</returns>
        public static string AddParamInt(string FieldName, int value1, int value2)
        {
            return AddParam(FieldName + " Between " + value1.ToString() + " and " + value2.ToString());
        }

        /// <summary>
        /// Float类型数值2者之前查询
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value1">值1</param>
        /// <param name="value2">值2</param>
        /// <returns>T-SQL</returns>
        public static string AddParamFoalt(string FieldName, double value1, double value2)
        {
            return AddParam(string.Format("{0} between {1} and {2}", FieldName, value1, value2));
        }
        
        /// <summary>
        /// Float类型查询
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value">值</param>
        /// <returns>T-SQL</returns>
        public static string AddParamFoalt(string FieldName, double value)
        {
            return AddParam(string.Format("{0} = {1}", FieldName, value));
        }

        /// <summary>
        /// 字段值在条件之间(FieldName between 值1 and 值2)
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value1">值1</param>
        /// <param name="value2">值2</param>
        /// <returns>T-SQL</returns>
        public static string AddParamStrBt(string FieldName, string value1, string value2)
        {
            return AddParam(FieldName + " Between '" + value1 + "' and '" + value2 + "'");
        }

        /// <summary>
        /// 字段值为布尔值查询
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value">Bool值</param>
        /// <returns>T-SQL</returns>
        public static string AddParamBool(string FieldName, bool value)
        {
            return AddParam(FieldName + (value ? "=1" : "=0"));
        }

        /// <summary>
        /// 查询在时间段之内
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value1">时间值1</param>
        /// <param name="value2">时间值2</param>
        /// <returns>T-SQL</returns>
        public static string AddParamDate(string FieldName, DateTime value1, DateTime value2)
        {
            return AddParam(FieldName + "Between '" + value1.ToString() + "' and '" + value2.ToString() + "'");
        }

        /// <summary>
        /// 查询在某个特定的时间
        /// </summary>
        /// <param name="FieldName">字段名</param>
        /// <param name="value">时间值</param>
        /// <returns>T-SQL</returns>
        public static string AddParamDate(string FieldName, DateTime value)
        {
            return AddParam(FieldName + " ='" + value.ToString() + "'");
        }

        /// <summary>
        /// 获取拼接后的T-SQL
        /// </summary>
        /// <returns>T-SQL</returns>
        public static string GetSQLText()
        {
            string Text = "";
            if (CreateSQLWhere.SQL.Length == 0)
            {
                Text = SQLText;
            }
            else
            {
                Text = SQL + SQLText;
            }
            return Text;
        }
    }

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值