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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pubfuncs.cs

?? 一個小型的ORM框架,寫得不好請多多指教
?? CS
?? 第 1 頁 / 共 2 頁
字號:
//using System;
//using System.Collections;
//using System.Collections.Generic;
//using System.Text;
//using System.Data;
//using System.Data.SqlClient;
//using System.Reflection;
//using System.Transactions;

//namespace MiniORM.BAK
//{
//    public class PubFuncs
//    {
//        private static Hashtable _HashKeyName = new Hashtable();
//        private static Hashtable _HashForeignKeyName = new Hashtable();
//        private static Hashtable _HashTablename = new Hashtable();
//        private static Hashtable _HashObjectType = new Hashtable();

//        /// <summary>
//        /// 返回對象的Select語句,在讀取對象的時候使用
//        /// </summary>
//        /// <param name="ModelObject"></param>
//        /// <returns></returns>
//        public static string GetReadSQL(object ModelObject, ref List<SqlParameter> Params)
//        {
//            string strSelectSQL = "SELECT {0} FROM {1} WHERE {2};";
//            string strTablename = "";
//            string strWhere = "";

//            StringBuilder sbFields = new StringBuilder();

//            //取數據庫表名
//            strTablename = PubFuncs.GetTableName(ModelObject);

//            PropertyInfo[] props = ModelObject.GetType().GetProperties();
//            MiniORMAttribute.DataFieldAttribute FieldAttr = null;
//            object[] CustomAttributes;

//            int i = 0;
//            foreach (PropertyInfo prop in props)
//            {
//                CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.DataFieldAttribute), false);
//                if (CustomAttributes.Length > 0)
//                {
//                    FieldAttr = CustomAttributes[0] as MiniORMAttribute.DataFieldAttribute;

//                    if (FieldAttr is MiniORMAttribute.DataFieldAttribute)
//                    {
//                        if (i > 0) sbFields.Append(",");
//                        sbFields.Append(FieldAttr.FieldName);
//                        i++;

//                        //對于標識字段,不做處理
//                        if (FieldAttr.IsIdentity)
//                        {
//                            //構造 " WHERE ID = @ID "這樣的語句
//                            strWhere += (((strWhere.Length == 0) ? " " : " AND ") + FieldAttr.FieldName + " = @" + FieldAttr.FieldName);
//                            //采用在GetInsertSQL中,順便進行Param的初始化,這樣避免兩次對ModelObject進行反射操作
//                            Params.Add(new SqlParameter("@" + FieldAttr.FieldName, prop.GetValue(ModelObject, null)));
//                        }
//                    }
//                }
//            }

//            if (strWhere == "")
//            {
//                //如果沒有設置Indentity字段的話,那么設置不讀取信息
//                strWhere = " 1=2 ";
//            }

//            if (sbFields.ToString().Trim() != "")
//            {
//                string[] Args = new string[] { sbFields.ToString(), strTablename, strWhere };
//                string strReturn = string.Format(strSelectSQL, Args);

//                return strReturn;
//            }
//            else
//            {
//                throw new Exception(ModelObject.ToString() + "構造Select語句失敗,字段字符串為空。");
//            }
//        }

//        /// <summary>
//        /// 返回Insert語句:格式:Insert into Tablename (Field1,Field2,...Fieldn) Values(@Field1,@Field2,...@Fieldn)
//        /// </summary>
//        /// <param name="ModelObject"></param>
//        /// <param name="Params"></param>
//        /// <returns></returns>
//        public static string GetInsertSQL(object ModelObject, ref List<SqlParameter> Params)
//        {
//            string strTablename = "";
//            string strInsertSQL = "DECLARE @IDENTITY_ID INT,@ERR_CODE INT;INSERT INTO {0}({1}) VALUES({2});SELECT @IDENTITY_ID = @@IDENTITY,@ERR_CODE=@@ERROR;SELECT @IDENTITY_ID, @ERR_CODE";

//            System.Text.StringBuilder strFields = new System.Text.StringBuilder();
//            System.Text.StringBuilder strValues = new System.Text.StringBuilder();
//            int i = 0;

//            //取數據庫表名
//            strTablename = GetTableName(ModelObject);

//            PropertyInfo[] props = ModelObject.GetType().GetProperties();
//            MiniORMAttribute.DataFieldAttribute FieldAttr = null;
//            object[] CustomAttributes;

//            i = 0;
//            foreach (PropertyInfo prop in props)
//            {
//                CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.DataFieldAttribute), false);
//                if (CustomAttributes.Length > 0)
//                {
//                    FieldAttr = CustomAttributes[0] as MiniORMAttribute.DataFieldAttribute;
//                    if (FieldAttr != null)
//                    {
//                        if (FieldAttr is MiniORMAttribute.DataFieldAttribute)
//                        {
//                            //對于標識字段,不做處理
//                            if (!FieldAttr.IsIdentity)
//                            {
//                                if (i > 0)
//                                {
//                                    strFields.Append(",");
//                                    strValues.Append(",");
//                                }

//                                //只處理值類型字段,對于引用類型或者其他類型的變量,將作為Model對象來另外處理

//                                strFields.Append(FieldAttr.FieldName);
//                                strValues.Append("@" + FieldAttr.FieldName);

//                                i++;
//                            }

//                            //采用在GetInsertSQL中,順便進行Param的初始化,這樣避免兩次對ModelObject進行反射操作
//                            Params.Add(new SqlParameter("@" + FieldAttr.FieldName, prop.GetValue(ModelObject, null)));
//                        }
//                    }
//                }
//            }

//            if (strFields.ToString().Trim() != "" && strValues.ToString().Trim() != "")
//            {
//                string[] Args = new string[] { strTablename, strFields.ToString(), strValues.ToString() };
//                string strReturn = string.Format(strInsertSQL, Args);

//                return strReturn;
//            }
//            else
//            {
//                throw new Exception(ModelObject.ToString() + "構造Insert語句失敗,字段字符串為空。");
//            }
//        }

//        /// <summary>
//        /// 返回Update語句,如果ModelObject.PrimaryKey不存在,那么將返回InsertSQL
//        /// </summary>
//        /// <param name="ModelObject"></param>
//        /// <returns></returns>
//        public static string GetUpdateSQL(object ModelObject, ref List<SqlParameter> Params)
//        {
//            string strUpdateSQL = "UPDATE {0} SET {1} WHERE {2}";
//            string strTablename = "";
//            string strWHERE = "";
//            StringBuilder strSET = new StringBuilder();
//            int i = 0;

//            //取數據庫表名
//            strTablename = GetTableName(ModelObject);

//            MiniORMAttribute.DataFieldAttribute FieldAttr = null;
//            PropertyInfo[] props = ModelObject.GetType().GetProperties();
//            object[] CustomAttributes;

//            foreach (PropertyInfo prop in props)
//            {
//                CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.DataFieldAttribute), false);
//                if (CustomAttributes.Length > 0)
//                {
//                    FieldAttr = CustomAttributes[0] as MiniORMAttribute.DataFieldAttribute;
//                    if (FieldAttr != null)
//                    {
//                        if (FieldAttr.IsIdentity)
//                        {
//                            object keyvalue = prop.GetValue(ModelObject, null);
//                            //如果要修改的記錄主鍵為0(對于int類型)或者為空(對于char型),那么執行插入操作
//                            if (Convert.ToString(keyvalue) == "0" || Convert.ToString(keyvalue) == "")
//                            {
//                                //重新清空Parameter,避免在InsertSQL中發生重復
//                                Params.Clear();
//                                return GetInsertSQL(ModelObject, ref Params);
//                            }
//                            strWHERE = FieldAttr.FieldName + " = @" + FieldAttr.FieldName;
//                        }
//                        else
//                        {
//                            if (i > 0) strSET.Append(",");

//                            strSET.Append(FieldAttr.FieldName + " = @" + FieldAttr.FieldName);
//                            i++;
//                        }

//                        //采用在GetInsertSQL中,順便進行Param的初始化,這樣避免兩次對ModelObject進行反射操作
//                        Params.Add(new SqlParameter("@" + FieldAttr.FieldName, prop.GetValue(ModelObject, null)));
//                    }
//                }
//            }

//            if (strSET.Length > 0)
//            {
//                return string.Format(strUpdateSQL, new string[] { strTablename, strSET.ToString(), strWHERE });
//            }

//            return "";
//        }

//        /// <summary>
//        /// 返回指定程序集,指定命名空間,指定類名的類型
//        /// </summary>
//        /// <param name="assemblyname">程序集名</param>
//        /// <param name="namespacename">命名空間</param>
//        /// <param name="classname">類名</param>
//        /// <returns></returns>
//        public static Type GetObjectType(string assemblyname, string namespacename, string classname)
//        {
//            Type objType = (Type)_HashObjectType[assemblyname + namespacename + classname];

//            if (objType == null)
//            {
//                object obj = _HashObjectType[assemblyname + namespacename + classname];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产福利| 欧美激情一二三区| 在线免费观看日本一区| 欧美男女性生活在线直播观看| 国产精品一区二区三区乱码| 奇米777欧美一区二区| 午夜成人免费电影| 日韩中文字幕麻豆| 捆绑调教美女网站视频一区| 日本欧美久久久久免费播放网| 日韩精品欧美成人高清一区二区| 午夜精品国产更新| 久久国产婷婷国产香蕉| 国产精品中文字幕日韩精品| 成人av片在线观看| 91香蕉视频污| 欧美日韩国产精品自在自线| 91精品国产综合久久精品图片| 精品嫩草影院久久| 国产精品婷婷午夜在线观看| 亚洲激情成人在线| 日韩高清国产一区在线| 国产一区二区伦理| 色综合久久99| 欧美电视剧免费全集观看| 久久午夜色播影院免费高清| 日韩美女视频一区二区| 午夜影视日本亚洲欧洲精品| 久久 天天综合| 不卡的av在线播放| 日韩一区二区不卡| 日本一区二区三区dvd视频在线| 亚洲女同一区二区| 欧美a级一区二区| www.久久精品| 日韩一区二区在线看片| 中文字幕一区二区三区视频| 日韩精品一区第一页| 成人一区二区三区视频在线观看 | 国产精品视频一二三| www久久精品| 亚洲女人的天堂| 伦理电影国产精品| 色狠狠色噜噜噜综合网| 欧美巨大另类极品videosbest | 成人丝袜高跟foot| 在线播放中文字幕一区| 国产精品欧美久久久久无广告| 亚洲第一成年网| 成人免费毛片app| 日韩精品中文字幕一区| 亚洲视频图片小说| 国产精品一区在线观看你懂的| 欧美三级中文字幕在线观看| 国产欧美综合在线| 黄一区二区三区| 欧美日韩激情一区二区三区| 国产做a爰片久久毛片| 在线视频一区二区三区| 国产人久久人人人人爽| 天堂va蜜桃一区二区三区漫画版| 成年人国产精品| 国产午夜精品福利| 精品一区二区三区蜜桃| 在线成人午夜影院| 午夜精品国产更新| 欧美理论在线播放| 亚洲福利视频三区| 欧美日韩视频不卡| 亚洲一区二区三区视频在线 | 亚洲最新视频在线观看| 懂色av噜噜一区二区三区av| 精品久久久久久无| 激情综合亚洲精品| 久久久久久久久久久久久女国产乱 | 亚洲成人精品一区| 国产aⅴ综合色| 国产欧美中文在线| 国产99久久久国产精品潘金| 欧美大片在线观看一区二区| 美国三级日本三级久久99| 欧美日韩免费高清一区色橹橹| 亚洲综合在线第一页| 91高清视频在线| 亚洲成人一区在线| 91精品国产综合久久久久久漫画| 日韩黄色小视频| 日韩精品在线一区| 国产suv精品一区二区三区| 久久精品视频免费观看| 欧美日韩日日摸| 日本道免费精品一区二区三区| 国产精品久久久一区麻豆最新章节| 国产精品中文字幕日韩精品 | 亚洲成精国产精品女| 欧美丝袜自拍制服另类| 日韩电影在线观看电影| 欧美videossexotv100| 国产v综合v亚洲欧| 亚洲一区二区三区四区在线免费观看 | 色网综合在线观看| 亚洲第一精品在线| 日韩欧美成人一区| 9l国产精品久久久久麻豆| 亚洲一二三四久久| xvideos.蜜桃一区二区| 99久久久免费精品国产一区二区| 亚洲精品大片www| 欧美这里有精品| 日韩—二三区免费观看av| 久久综合精品国产一区二区三区| 成人一区二区视频| 午夜av区久久| 国产日产精品1区| 欧美日韩国产综合一区二区| 国产一区高清在线| 一区二区三区毛片| 久久久国产精品麻豆| 欧美日韩一区视频| 成人综合激情网| 日本va欧美va瓶| 亚洲九九爱视频| 日本一区二区免费在线| 欧美日韩不卡在线| 91在线你懂得| 国产一区在线不卡| 日韩精品欧美精品| 一区二区三区精品| 国产日韩欧美亚洲| 日韩精品专区在线影院重磅| 91精品办公室少妇高潮对白| 国产99久久久国产精品| 麻豆一区二区99久久久久| 亚洲午夜激情av| 亚洲免费av在线| 国产精品日韩成人| 久久精品视频在线免费观看| 日韩欧美综合一区| 69堂国产成人免费视频| 欧美性淫爽ww久久久久无| www.亚洲色图| 成人国产精品免费观看| 国产一区二区三区观看| 另类专区欧美蜜桃臀第一页| 午夜在线电影亚洲一区| 一个色妞综合视频在线观看| 亚洲色图视频网| 国产精品色婷婷| 国产精品久久久久久一区二区三区| 日韩欧美在线1卡| 日韩欧美专区在线| 日韩欧美久久一区| 精品国产乱码久久久久久夜甘婷婷| 欧美福利视频导航| 日韩一区二区三| 精品美女被调教视频大全网站| 日韩一二三区不卡| 精品不卡在线视频| 国产亚洲福利社区一区| 国产欧美日韩在线观看| 国产精品免费观看视频| 亚洲人成7777| 亚洲电影你懂得| 男人操女人的视频在线观看欧美| 日韩高清在线观看| 国产一区美女在线| 粉嫩在线一区二区三区视频| 成人免费毛片aaaaa**| 99久久er热在这里只有精品15| 97se亚洲国产综合在线| 欧美日韩一区二区三区高清| 日韩一级成人av| 亚洲国产精品ⅴa在线观看| 亚洲人成伊人成综合网小说| 亚洲国产精品欧美一二99| 奇米一区二区三区av| 国产99精品国产| 91美女视频网站| 国产欧美日韩久久| 中文字幕欧美一| 日韩精品一区第一页| 国产一区二区女| 日本久久精品电影| 欧美成人国产一区二区| 一色桃子久久精品亚洲| 日韩不卡一区二区三区| 成人福利视频网站| 欧美美女一区二区在线观看| 久久久夜色精品亚洲| 亚洲一区自拍偷拍| 国产一级精品在线| 欧美色老头old∨ideo| 国产亚洲视频系列| 亚洲h动漫在线| 不卡av电影在线播放| 欧美一区二区三区色| 自拍偷在线精品自拍偷无码专区 | 裸体歌舞表演一区二区| 91在线视频18| 国产视频一区二区在线|