亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? expression.cs

?? smark.data是基于C#開(kāi)發(fā)的輕量級(jí)數(shù)據(jù)訪問(wèn)組件。 提供以下功能封: 1)提供了跨數(shù)據(jù)庫(kù)類(lèi)型操作能力 2)基于程線(xiàn)存儲(chǔ)的數(shù)據(jù)訪問(wèn)上下文對(duì)象
?? CS
字號(hào):
?using System;
using System.Collections.Generic;
using System.Text;

namespace Smark.Data
{
    public partial class Expression
    {
        public Expression()
        {
            
        }
        private List<Command.Parameter> mParameters = new List<Command.Parameter>();
        public List<Command.Parameter> Parameters
        {
            get
            {
                return mParameters;
            }
        }
        private StringBuilder mSqlText = new StringBuilder();
        public StringBuilder SqlText
        {
            get
            {
                return mSqlText;
            }
            
        }
        internal void Parse(Command cmd)
        {
            if (SqlText.Length > 0)
            {
                cmd.Text.Append(" where " + SqlText.ToString());
                foreach (Command.Parameter p in Parameters)
                {
                    cmd.AddParameter(p);
                }
            }
        }
        public static Expression operator &(Expression exp1, Expression exp2)
        {
            if (exp1 == null || exp1.SqlText.Length == 0)
                return exp2;
            if (exp2 == null || exp2.SqlText.Length == 0)
                return exp1;

            Expression exp = new Expression();
            exp.SqlText.Append("(");
            exp.SqlText.Append(exp1.ToString());

            exp.SqlText.Append(")");
            exp.Parameters.AddRange(exp1.Parameters);
            exp.SqlText.Append(" and (");
            exp.SqlText.Append(exp2.SqlText.ToString());
            exp.SqlText.Append(")");
            exp.Parameters.AddRange(exp2.Parameters);
            return exp;
        }
        public static Expression operator |(Expression exp1, Expression exp2)
        {
            if (exp1 == null || exp1.SqlText.Length == 0)
                return exp2;
            if (exp2 == null || exp2.SqlText.Length == 0)
                return exp1;
            Expression exp = new Expression();
            exp.SqlText.Append("(");
            exp.SqlText.Append(exp1.ToString());
           
            exp.SqlText.Append(")");
            exp.Parameters.AddRange(exp1.Parameters);
            exp.SqlText.Append(" or (");
            exp.SqlText.Append(exp2.SqlText.ToString());
            exp.SqlText.Append(")");
            exp.Parameters.AddRange(exp2.Parameters);
            return exp;

        }
        internal static string GetParamName()
        {

            
            int id = System.Threading.Thread.CurrentThread.ManagedThreadId;
            try
            {
                if (mNameSeed == null)
                    mNameSeed = new ParamNameSeed();
                ParamNameSeed pns = mNameSeed;
                if (pns.Value > 100)
                    pns.Value = 0;
                else
                    pns.Value++;
                return "p" + pns.Value;
            }
            catch (Exception e_)
            {
                throw new Exception("Dictionary Bug:" + e_.Message, e_);
            }
          
        }
        [ThreadStatic]
        static ParamNameSeed mNameSeed = new ParamNameSeed();
        
        class ParamNameSeed
        {
            public int Value
            {
                get;
                set;
            }
        }
        public override string ToString()
        {
            return SqlText.ToString();
        }
        
    }
    public class FieldInfo
    {
        public FieldInfo(string table, string name)
        {
            mTable = table;
            mName = name;
        }
        private string mTable;
        public string Table
        {
            get
            {
                return mTable;
            }
        }
        private string mName;
        public string Name
        {
            get
            {
                return mName;
            }
        }
        public Expression Eq(object value)
        {
            string p = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0}=@{1} ",Name,p));
            exp.Parameters.Add(new Command.Parameter{ Name=p, Value=value});
            return exp;
        }
        public Expression LtEq(object value)
        {
            string p = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0}<=@{1} ", Name, p));
            exp.Parameters.Add(new Command.Parameter { Name = p, Value = value });
            return exp;
        }
        public Expression Lt(object value)
        {
            string p = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0}<@{1} ", Name, p));
            exp.Parameters.Add(new Command.Parameter { Name = p, Value = value });
            return exp;
        }
        public Expression Gt(object value)
        {
            string p = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0}>@{1} ", Name, p));
            exp.Parameters.Add(new Command.Parameter { Name = p, Value = value });
            return exp;
        }
        public Expression GtEq(object value)
        {
            string p = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0}>=@{1} ", Name, p));
            exp.Parameters.Add(new Command.Parameter { Name = p, Value = value });
            return exp;
        }
        public Expression NotEq(object value)
        {
            string p = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0}<>@{1} ", Name, p));
            exp.Parameters.Add(new Command.Parameter { Name = p, Value = value });
            return exp;
        }
        public Expression In(System.Collections.IEnumerable values)
        {
            string p;
            int i = 0;
            Expression exp = new Expression();
            exp.SqlText.Append(" " + Name + " in (");
            foreach (object value in values)
            {
                p = Expression.GetParamName();
                if (i > 0)
                    exp.SqlText.Append(",");
                exp.SqlText.Append("@" + p);
                exp.Parameters.Add(new Command.Parameter { Name=p,Value=value });

                i++;
            }
            exp.SqlText.Append(" )");
            return exp;
        }
        public Expression In(FieldInfo field, Expression expression)
        {
            Expression exp = new Expression();
            string astable = "T" + Expression.GetParamName();
            exp.SqlText.Append(" " + Name + " in (select "+astable+"."+ field.Name+" from "+ field.Table+" "+astable);
            if (expression != null && expression.SqlText.Length > 0)
            {
                exp.SqlText.Append(" where " + expression.SqlText.ToString());
                exp.Parameters.AddRange(expression.Parameters);
            }
            exp.SqlText.Append(")");
            return exp;
        }
        public Expression NotIn(System.Collections.IEnumerable values)
        {
            string p;
            int i = 0;
            Expression exp = new Expression();
            exp.SqlText.Append(" " + Name + " not in (");
            foreach (object value in values)
            {
                p = Expression.GetParamName();
                if (i > 0)
                    exp.SqlText.Append(",");
                exp.SqlText.Append("@" + p);
                exp.Parameters.Add(new Command.Parameter { Name = p, Value = value });

                i++;
            }
            exp.SqlText.Append(")");
            return exp;
        }
        public Expression NotIn(FieldInfo field, Expression expression)
        {
            Expression exp = new Expression();
            string astable = "T" + Expression.GetParamName();
            exp.SqlText.Append(" " + Name + " in (select " + astable + "." + field.Name + " from " + field.Table + " " + astable);
            if (expression != null && expression.SqlText.Length > 0)
            {
                exp.SqlText.Append(" where " + expression.SqlText.ToString());
                exp.Parameters.AddRange(expression.Parameters);
            }
            exp.SqlText.Append(")");
            return exp;
        }
        public Expression Between(object fromvalue, object tovalue)
        {
            string p, p1;
            p = Expression.GetParamName();
            p1 = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append( string.Format(" {0} Between @{1} and @{2}", Name, p, p1));
            exp.Parameters.Add(new Command.Parameter { Name=p, Value=fromvalue });
            exp.Parameters.Add(new Command.Parameter { Name = p1, Value = tovalue });
            return exp;
        }
        public Expression NotBetween(object fromvalue, object tovalue)
        {
            string p, p1;
            p = Expression.GetParamName();
            p1 = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(string.Format(" {0} not Between @{1} and @{2}", Name, p, p1));
            exp.Parameters.Add(new Command.Parameter { Name = p, Value = fromvalue });
            exp.Parameters.Add(new Command.Parameter { Name = p1, Value = tovalue });
            return exp;
        }
        public Expression Like(object value)
        {
            if (value != null && value is System.Collections.IEnumerable && value.GetType() != typeof(string))
                return LikeMany((System.Collections.IEnumerable)value);
            string pn = Expression.GetParamName();
            Expression exp = new Expression();
            exp.SqlText.Append(
                string.Format("{0} like @{1}", Name, pn)
                );
            exp.Parameters.Add(new Command.Parameter { Name = pn, Value = value });
            return exp;
        }
        private Expression LikeMany(System.Collections.IEnumerable value)
        {
            
            Expression exp = new Expression();
            int i = 0;
            string pn;
            exp.SqlText.Append("(");
            foreach (object item in value)
            {
                pn = Expression.GetParamName();
                if (i > 0)
                    exp.SqlText.Append(" or ");
                exp.SqlText.Append(Name +" like @"+pn);
                exp.Parameters.Add(new Command.Parameter{ Name=pn, Value=item});
                i++;
            }
            exp.SqlText.Append(")");
            return exp;
        }
        public Expression Match(object value)
        {
            if (value != null && value is System.Collections.IEnumerable && value.GetType() !=typeof(string))
                return MatchMany((System.Collections.IEnumerable)value);
            return Like("%" + value + "%");
        }
        private Expression MatchMany(System.Collections.IEnumerable value)
        {
            Expression exp = new Expression();
            int i = 0;
            string pn;
            exp.SqlText.Append("(");
            foreach (object item in value)
            {
                pn = Expression.GetParamName();
                if (i > 0)
                    exp.SqlText.Append(" or ");
                exp.SqlText.Append(Name + " like @" + pn);
                exp.Parameters.Add(new Command.Parameter { Name = pn, Value = "%"+item+"%" });
                i++;
            }
            exp.SqlText.Append(")");
            return exp;
        }
        public Expression IsNull()
        {
            Expression exp = new Expression();
            exp.SqlText.Append(" "+Name+" is null");
            return exp;
        }
        public Expression IsNotNull()
        {
            Expression exp = new Expression();
            exp.SqlText.Append(" " + Name + " is not null");
            return exp;
        }
        public override string ToString()
        {
            return Name;
        }
        public static Expression operator ==(FieldInfo field, object value)
        {
            if (value == null)
                return field.IsNull();
            if (value is System.Collections.IEnumerable && value.GetType() !=typeof(string))
                return field.In((System.Collections.IEnumerable)value);
            return field.Eq(value);
        }
        public static Expression operator !=(FieldInfo field, object value)
        {
            if (value == null)
                return field.IsNotNull();
            if (value is System.Collections.IEnumerable && value.GetType() != typeof(string))
                return field.NotIn((System.Collections.IEnumerable)value);
            return field.NotEq(value);
        }
        public static Expression operator >(FieldInfo field, object value)
        {
            return field.Gt(value);
        }
        public static Expression operator >=(FieldInfo field, object value)
        {
            return field.GtEq(value);
        }
        public static Expression operator <(FieldInfo field, object value)
        {
            return field.Lt(value);
        }
        public static Expression operator <=(FieldInfo field, object value)
        {
            return field.LtEq(value);
        }
        public FieldInfo At()
        {
            return new FieldInfo(Table, Table + "." + Name);
        }
        public FieldInfo At(string table)
        {
            return new FieldInfo(table, table + "." + Name);
        }

        public string Desc
        {
            get
            {
                return Name + " desc ";
            }
        }
        public string Asc
        {
            get
            {
                return Name + " asc ";
            }
        }
        public Field NewValue(object value)
        {
            return new Field { Name=Name,Value = value };
        }
        
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩黄色一区二区| 欧美婷婷六月丁香综合色| 欧美日韩国产一级| 国产精品拍天天在线| 日本伊人午夜精品| gogo大胆日本视频一区| 精品盗摄一区二区三区| 亚洲国产一区二区在线播放| 成人福利在线看| 亚洲精品在线观| 免费的国产精品| 欧美日韩专区在线| 亚洲免费在线观看| 成人自拍视频在线观看| 精品精品国产高清a毛片牛牛 | 日韩精品一区二区三区swag | 中文av一区二区| 韩国午夜理伦三级不卡影院| 制服丝袜av成人在线看| 亚洲伊人色欲综合网| 91在线观看一区二区| 中文字幕二三区不卡| 国产精华液一区二区三区| 欧美tickle裸体挠脚心vk| 日本不卡高清视频| 666欧美在线视频| 亚洲成人在线观看视频| 91黄色在线观看| 亚洲精品免费播放| av不卡在线观看| 国产精品久久久久影院色老大| 国产黑丝在线一区二区三区| 久久蜜桃av一区二区天堂 | 日韩电影免费在线| 制服丝袜亚洲色图| 日韩极品在线观看| 欧美一区二区三区免费大片| 三级不卡在线观看| 91精品国产综合久久精品麻豆 | 久久综合精品国产一区二区三区 | 亚洲欧洲av一区二区三区久久| 国产成人亚洲精品青草天美| 久久久高清一区二区三区| 国产99久久久国产精品潘金 | 久久久精品tv| 国产超碰在线一区| 中文一区二区在线观看| 成人少妇影院yyyy| 国产精品国产三级国产有无不卡| av资源站一区| 一区二区三区鲁丝不卡| 欧美日韩一区 二区 三区 久久精品 | 91丝袜高跟美女视频| 亚洲精品国产一区二区精华液| 欧洲亚洲国产日韩| 天天综合天天做天天综合| 欧美日韩免费高清一区色橹橹 | 亚洲宅男天堂在线观看无病毒| 91九色最新地址| 丝袜亚洲另类欧美| 精品国产一区二区亚洲人成毛片| 国产一区二区在线看| 国产精品无圣光一区二区| 99视频在线观看一区三区| 一区二区三区高清不卡| 欧美夫妻性生活| 国内不卡的二区三区中文字幕| 国产视频在线观看一区二区三区| 99re8在线精品视频免费播放| 一区二区三区国产精品| 日韩一区二区三区四区五区六区| 国产激情精品久久久第一区二区| 综合网在线视频| 欧美乱熟臀69xxxxxx| 精品一区二区三区免费| 国产精品久久久久久久久搜平片 | 欧美裸体一区二区三区| 国产综合色精品一区二区三区| 亚洲国产精品激情在线观看| 色狠狠一区二区三区香蕉| 视频一区中文字幕国产| 国产亚洲美州欧州综合国| 在线视频国产一区| 精彩视频一区二区三区| 亚洲免费av网站| 日韩午夜在线观看| 91在线视频播放| 美日韩一区二区| 亚洲色图一区二区三区| 欧美一区二区三区视频免费| www.激情成人| 蜜臀av一区二区| 亚洲同性gay激情无套| 日韩视频中午一区| 91一区二区在线| 精品一区二区三区影院在线午夜| |精品福利一区二区三区| 欧美一级高清大全免费观看| 91在线视频观看| 国产一区二区主播在线| 亚洲成人激情社区| 亚洲国产成人私人影院tom | 99久久国产综合色|国产精品| 日本三级亚洲精品| 亚洲欧美在线视频观看| 精品999在线播放| 欧美在线观看18| 国产 日韩 欧美大片| 日韩国产成人精品| 一区二区三区四区激情| 久久久精品tv| 日韩欧美电影一二三| 色婷婷亚洲精品| 成人一区二区视频| 欧美aaaaaa午夜精品| 亚洲自拍偷拍九九九| 国产精品久久久久毛片软件| 精品国产髙清在线看国产毛片| 欧美中文字幕一二三区视频| 粉嫩av亚洲一区二区图片| 蜜臀av一区二区在线免费观看 | 国产精品久久久久久久久免费桃花 | 国产一区二区毛片| 视频在线观看国产精品| 亚洲乱码中文字幕| 久久久久久久综合狠狠综合| 日韩欧美在线网站| 欧美喷潮久久久xxxxx| 在线观看亚洲一区| 99re热视频这里只精品| 成人免费毛片aaaaa**| 久久69国产一区二区蜜臀| 五月开心婷婷久久| 亚洲综合在线视频| 亚洲精品中文在线影院| 亚洲视频中文字幕| 国产精品私房写真福利视频| 国产亚洲欧美日韩俺去了| 欧美r级电影在线观看| 91精品在线麻豆| 宅男在线国产精品| 欧美福利视频导航| 欧美电影在线免费观看| 欧美美女bb生活片| 欧美久久高跟鞋激| 欧美午夜不卡在线观看免费| 色婷婷亚洲精品| 在线观看免费亚洲| 在线观看日产精品| 欧美色综合影院| 欧美日韩在线观看一区二区 | 91麻豆精品秘密| 色香蕉成人二区免费| 一本久道久久综合中文字幕| 91免费视频网| 欧美又粗又大又爽| 欧美体内she精视频| 欧美日韩一区二区三区不卡| 欧美日韩国产小视频在线观看| 欧美日韩你懂的| 69堂国产成人免费视频| 91精品国产手机| 日韩欧美高清dvd碟片| 337p日本欧洲亚洲大胆精品| 精品久久国产字幕高潮| 久久这里只有精品视频网| 日本一区二区视频在线观看| 欧美国产日韩在线观看| 综合精品久久久| 亚洲国产日韩a在线播放性色| 午夜电影一区二区| 蜜臀久久99精品久久久画质超高清| 紧缚奴在线一区二区三区| 国产乱子伦视频一区二区三区 | 国产精品白丝jk黑袜喷水| 成人激情综合网站| 91成人免费在线视频| 欧美日韩免费高清一区色橹橹 | 2020国产精品| 国产精品久久久久久久久果冻传媒 | 国产色产综合色产在线视频| 中文字幕亚洲综合久久菠萝蜜| 亚洲欧美区自拍先锋| 亚洲一区免费观看| 日韩电影在线观看电影| 国产精品一区二区久久不卡| 91在线视频播放| 7777精品伊人久久久大香线蕉的| 精品国产污污免费网站入口| 日本一区二区三区电影| 一区二区高清免费观看影视大全| 日韩高清一区在线| 国产成人免费9x9x人网站视频| 91美女片黄在线| 欧美一区二区大片| 国产精品久久一级| 五月激情综合婷婷| 高清beeg欧美| 欧美日高清视频| 国产女同性恋一区二区|