亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#用擴展方法進行自動生成添加刪除對象轉換的功能

2019-11-14 13:52:34
字體:
來源:轉載
供稿:網友
 public static class ExtendedModel    {        #region 實體類的增刪改查        #region 添加        public static string AddStr(this object t)        {            StringBuilder strSql = new StringBuilder();            StringBuilder strSql1 = new StringBuilder();            StringBuilder strSql2 = new StringBuilder();            FieldInfo PRimaryKeyInfo = t.GetType().GetField("PrimaryKey");            FieldInfo IdentityStrInfo = t.GetType().GetField("IdentityStr");            string IdentityStr = "";            if (IdentityStrInfo != null)            {                IdentityStr = IdentityStrInfo.GetValue(t).ToString();            }            foreach (var item in t.GetType().GetProperties())            {                if (IdentityStr != item.Name && item.PropertyType != typeof(System.Byte[]))                {                    strSql1.Append(item.Name + ",");                    if (item.PropertyType == typeof(string) || item.PropertyType == typeof(DateTime) || item.PropertyType == typeof(Nullable <DateTime>) || item.PropertyType == typeof(bool))                    {                        if (item.PropertyType == typeof(DateTime) || item.PropertyType == typeof(Nullable<DateTime>))                        {                            DateTime datetime = (DateTime)item.GetValue(t, null);                            if (datetime>DateTime.Parse("1900-01-01"))                            {                                strSql2.Append("'" + datetime.ToString("yyyy-MM-dd HH:mm:ss") + "',");                            }                            else                            {                                strSql2.Append("'1900-01-01',");                            }                                                    }                        else                        {                            strSql2.Append("'" + item.GetValue(t, null) + "',");                        }                                            }                    else                    {                        object value = item.GetValue(t, null);                        if (value != null)                        {                            strSql2.Append(value + ",");                        }                        else                        {                            strSql2.Append("0,");                        }                    }                }            }            strSql.Append("insert into " + t.GetType().Name + "(");            strSql.Append(strSql1.ToString().TrimEnd(','));            strSql.Append(")");            strSql.Append(" values (");            strSql.Append(strSql2.ToString().TrimEnd(','));            strSql.Append(")");            return strSql.ToString();        }        public static bool Add(this object t)        {            int istrue = DbHelperSQL.ExecuteSql(AddStr(t));            if (istrue > 0)            {                return true;            }            else            {                return false;            }        }        #endregion        #region 刪除        public static string DeleteStr<T>(this T t, string Fields)        {            Type type = t.GetType();            string str = "delete " + type.Name;            if (!string.IsNullOrEmpty(Fields))            {                str += " where 1=1 ";                foreach (string item in Fields.Split(','))                {                    PropertyInfo info = type.GetProperty(item);                    str += string.Format(" and {0}='{1}'", info.Name, info.GetValue(t, null));                }            }            return str;        }        public static string DeleteWhereStr<T>(this T t, string sqlWhere) where T : new()        {            Type type = t.GetType();            string str = "delete " + type.Name + " ";            if (!string.IsNullOrEmpty(sqlWhere))            {                str += sqlWhere;            }            return str;        }        public static bool Delete<T>(this T t, string Fields)        {            int istrue = DbHelperSQL.ExecuteSql(DeleteStr(t, Fields));            if (istrue > 0)            {                return true;            }            else            {                return false;            }        }        public static bool DeleteWhere<T>(this T t, string sqlWhere) where T : new()        {            int istrue = DbHelperSQL.ExecuteSql(DeleteWhereStr(t, sqlWhere));            if (istrue > 0)            {                return true;            }            else            {                return false;            }        }        #endregion        #endregion        #region 獲取實體類        /// <summary>        /// DataRow轉換實體類        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="row"></param>        /// <returns></returns>        public static T ToModel<T>(this DataRow row) where T : new()        {            T t = new T();            foreach (var item in t.GetType().GetProperties())            {                if (row.Table.Columns.IndexOf(item.Name) > -1)                {                    if (row[item.Name] != null && typeof(System.DBNull) != row[item.Name].GetType())                    {                        if (typeof(System.Byte) == row[item.Name].GetType())                        {                            if (item.PropertyType == typeof(System.Nullable<int>) || item.PropertyType == typeof(int))                            {                                item.SetValue(t,Convert.ToInt32(row[item.Name]), null);                            }                                                    }                        else                        {                            item.SetValue(t, Convert.ChangeType(row[item.Name], item.PropertyType), null);                        }                    }                    else if (typeof(System.DateTime) == item.PropertyType)                    {                        item.SetValue(t, DateTime.Parse("1999-12-12"), null);                    }                }            }            return t;        }        /// <summary>        /// DataRow轉換實體類        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="row"></param>        /// <returns></returns>        public static List<T> ToModelList<T>(this DataTable dt) where T : new()        {            List<T> list = new List<T>();            if (dt.Rows.Count > 0)            {                foreach (DataRow item in dt.Rows)                {                    list.Add(ToModel<T>(item));                }            }            return list;        }        /// <summary>        /// 查詢Where獲取實體類        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="strWhere"></param>        /// <returns></returns>        public static T Model<T>(this T t, string strWhere)            where T : class,new()        {            string str = "select top 1 * from " + typeof(T).Name + " " + strWhere;            DataTable dt = DbHelperSQL.Query(str).Tables[0];            if (dt.Rows.Count > 0)            {                return ToModel<T>(dt.Rows[0]);            }            else            {                return null;            }        }        /// <summary>        /// 查詢Where獲取實體列表        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="strWhere"></param>        /// <returns></returns>        public static List<T> ModelList<T>(this T t, string strWhere)            where T : class,new()        {            string str = "select * from " + typeof(T).Name + " " + strWhere;            DataTable dt = DbHelperSQL.Query(str).Tables[0];            List<T> list = new List<T>();            if (dt.Rows.Count > 0)            {                foreach (DataRow item in dt.Rows)                {                    list.Add(ToModel<T>(item));                }            }            return list;        }        #endregion        #region 實體類轉換        public static T EntityToT<T, TT>(this TT tt) where T : new()        {            T t = new T();            List<PropertyInfo> listT = t.GetType().GetProperties().ToList();            List<PropertyInfo> listObj = tt.GetType().GetProperties().ToList();            foreach (var item in listT)            {                object value = SetPropertyValue(item, listObj, tt);                item.SetValue(t, value, null);            }            return t;        }        private static object SetPropertyValue(PropertyInfo info, List<PropertyInfo> listObj, object obj)        {            try            {                object obValue = null;                Type type = info.PropertyType;                List<PropertyInfo> objInfo = listObj.Where(c => c.Name.ToLower() == info.Name.ToLower()).ToList();                if (objInfo.Count > 0)                {                    obValue = objInfo[0].GetValue(obj, null);                    if (type == typeof(decimal) || type == typeof(Decimal))                    {                        if (obValue != null)                        {                            obValue = decimal.Parse(obValue.ToString());                        }                    }                    else if (type == typeof(int))                    {                        if (obValue != null)                        {                            obValue = int.Parse(obValue.ToString());                        }                    }                    else if (type == typeof(DateTime))                    {                        if (obValue != null)                        {                            DateTime date = new DateTime();                            if (DateTime.TryParse(obValue.ToString(), out date))                            {                                obValue = date;                            }                            else                            {                                obValue = DateTime.Parse("1999-12-12");                            }                        }                        else                        {                            obValue = DateTime.Parse("1999-12-12");                        }                    }                }                return obValue;            }            catch (Exception ex)            {                throw new Exception(string.Format("實體轉換失敗")); ;            }        }        #endregion    }

調用方法

//datarow轉換對象VWB_Weight upModel = dt.Rows[0].ToModel<VWB_Weight>();//table轉換listList<VWB_Weight> upModel = dt.ToModelList<VWB_Weight>();upModel.Add();//一個對象轉換另一個對象AA a = upModel.EntityToT<AA>;

動軟生成器模板

<#@ template language="c#" HostSpecific="True" #><#@ output extension= ".cs" #><#    TableHost host = (TableHost)(Host);    host.Fieldlist.Sort(CodeCommon.CompareByintOrder);#>using System; using System.Text;using System.Collections.Generic; using System.Data;namespace <#= host.NameSpace #>.Model<# if( host.Folder.Length > 0) {#>.<#= host.Folder #><# } #>{    <# if( host.TableDescription.Length > 0) {#>    //<#= host.TableDescription #>    <# } #>    public class <#= host.GetModelClass(host.TableName) #>    {        <# foreach (ColumnInfo c in host.Fieldlist)        { #>/// <summary>        /// <#= string.IsNullOrEmpty(c.Description) ? c.ColumnName : c.Description #>        /// </summary>                private <#= CodeCommon.DbTypeToCS(c.TypeName) #> _<#= c.ColumnName.ToString().ToLower() #>;        public <#= CodeCommon.DbTypeToCS(c.TypeName) #> <#= c.ColumnName #>        {            get{ return _<#= c.ColumnName.ToString().ToLower()#>; }            set{ _<#= c.ColumnName.ToString().ToLower() #> = value; }        }                <# } #>        public string PrimaryKey="<# foreach (ColumnInfo c in host.Keys)            { #><#= c.ColumnName #>,<#}#>".TrimEnd(',');public string IdentityStr = "<# for(int i=0;i< host.Fieldlist.Count;i++) {   ColumnInfo c = host.Fieldlist[i]; if (c.IsIdentity) {#><#= c.ColumnName#><# if (i< host.Fieldlist.Count-1 ) {#>,<#}#><#}}#>".TrimEnd(',');        public string IdentityKey="<#= host.IdentityKey==null?"":host.IdentityKey.ColumnName#>";    }}

 像刪除和修改的一些代碼沒有顧得上去添加


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产私拍精品国模在线观看| 久久久91精品国产一区不卡| 亚洲天堂av在线播放| 中文字幕免费精品一区| 日韩高清电影免费观看完整| 91国产精品91| 中文字幕av一区二区| 日韩在线欧美在线国产在线| 91爱爱小视频k| 77777少妇光屁股久久一区| 欧美在线免费观看| 国产精品视频在线播放| 国产欧美婷婷中文| 国产精品视频区1| 亚洲欧洲自拍偷拍| 亚洲女同精品视频| 欧美精品第一页在线播放| 中文字幕在线成人| 色777狠狠综合秋免鲁丝| 亚洲男人天堂网站| 性欧美亚洲xxxx乳在线观看| 色偷偷9999www| 国产免费一区二区三区香蕉精| 国产日韩欧美影视| 神马国产精品影院av| 91黑丝高跟在线| 亚洲人成电影在线观看天堂色| 国产欧美亚洲精品| 亚洲直播在线一区| 91久久精品美女高潮| 性日韩欧美在线视频| 日本不卡视频在线播放| 亚洲影影院av| 久久久国产精彩视频美女艺术照福利| 国产成人精品久久亚洲高清不卡| 91免费视频国产| 欧美理论电影网| 91久热免费在线视频| 2019亚洲日韩新视频| 国产成人一区二区| 成人网在线免费观看| 国产精品伦子伦免费视频| 精品国产欧美成人夜夜嗨| 久久激情视频久久| 午夜精品久久久久久久99热| 搡老女人一区二区三区视频tv| 九九热这里只有在线精品视| 中文在线不卡视频| 国产91在线高潮白浆在线观看| 日韩欧美国产网站| 一区二区三区视频免费在线观看| 菠萝蜜影院一区二区免费| 国产精品激情av电影在线观看| 精品中文字幕在线| 91禁外国网站| 国产不卡精品视男人的天堂| 国产成+人+综合+亚洲欧美丁香花| 亚洲成人免费在线视频| 高潮白浆女日韩av免费看| 丝袜一区二区三区| 久久久久久久久久久人体| 国产精品久久久久久久9999| 欧美成人午夜激情视频| 色一情一乱一区二区| 欧美精品一本久久男人的天堂| 国产精品日韩专区| 欧美又大粗又爽又黄大片视频| 久久视频免费观看| 日韩一区二区精品视频| 国产精品一区二区久久| 91久久久精品| 久久天天躁狠狠躁夜夜av| 亚洲欧美精品伊人久久| 色偷偷噜噜噜亚洲男人的天堂| 2021久久精品国产99国产精品| 欧美激情性做爰免费视频| 大胆人体色综合| 一本色道久久88综合日韩精品| 91老司机在线| 欧美裸体xxxxx| 97久久超碰福利国产精品…| 中文字幕v亚洲ⅴv天堂| 国产成人一区二区三区电影| 68精品国产免费久久久久久婷婷| 亚洲欧美中文字幕在线一区| 狠狠色香婷婷久久亚洲精品| 日韩精品在线免费播放| 在线成人中文字幕| 亚洲精品日韩av| 日韩欧美中文字幕在线观看| 欧美黑人狂野猛交老妇| 久久久亚洲影院你懂的| 国产91在线播放| 亚洲a成v人在线观看| 午夜精品久久久久久久99黑人| 午夜精品久久久久久久99黑人| 亚洲第一区第一页| 国产欧美在线播放| 欧美日本啪啪无遮挡网站| 久久久久久亚洲精品| 成人精品福利视频| 亚洲乱码一区二区| 中文字幕日韩在线视频| 日韩国产一区三区| 久久久在线视频| 清纯唯美亚洲激情| 91精品视频免费观看| 中文字幕日韩精品有码视频| 中文日韩在线观看| yw.139尤物在线精品视频| 少妇精69xxtheporn| 亚洲精品国精品久久99热| 夜夜嗨av色综合久久久综合网| 国产日韩在线视频| 亚洲一区二区三区xxx视频| 6080yy精品一区二区三区| 国内免费久久久久久久久久久| 亚洲国产日韩欧美综合久久| 91av网站在线播放| 欧美性xxxxxx| 欧美性色xo影院| 亚洲伊人久久大香线蕉av| 久久精品美女视频网站| 欧美美女操人视频| 国产美女扒开尿口久久久| 欧美激情第1页| 美女久久久久久久久久久| 国模精品系列视频| 亚洲精品乱码久久久久久按摩观| 欧美成人免费一级人片100| 亚洲系列中文字幕| 深夜福利日韩在线看| 97人洗澡人人免费公开视频碰碰碰| 亚洲a级在线播放观看| 欧美日韩在线第一页| 91亚洲国产成人久久精品网站| 91精品在线国产| 精品自拍视频在线观看| 夜色77av精品影院| 欧美视频二区36p| 国产成人精品优优av| 欧美性高潮床叫视频| 91免费高清视频| 欧美一级大片在线免费观看| 日韩专区在线观看| 美日韩精品免费观看视频| 日韩中文字幕国产精品| 秋霞av国产精品一区| 久久久久久91香蕉国产| 欧美黑人性视频| 日韩中文字幕在线免费观看| 中文字幕亚洲天堂| 黑丝美女久久久| 国产69精品久久久久99| 久久99久久久久久久噜噜| 少妇精69xxtheporn| 国产一区二区精品丝袜| 国产91热爆ts人妖在线| 国产精品一二三在线| 成人性生交大片免费看视频直播| 欧美激情在线有限公司| 国产欧美日韩免费看aⅴ视频| 在线视频欧美日韩精品| 欧美视频在线观看 亚洲欧|