修改数据表部分字段方法封装-及-动态生成对象并动态添加属性
代码:
//这样写的话,输入的是表的行对象,返回的是数据字典,可以直接用到更新操作里,public static Object AlterDate(Object tabledataobj){List<string> namelist = new List<string>();List<Object> valuelist = new List<object>();Type t = tabledataobj.GetType();foreach (PropertyInfo pi in t.GetProperties()){if (pi.Name == "id"){ }else{Object value = pi.GetValue(tabledataobj);if (value != null){namelist.Add(pi.Name);valuelist.Add(value);}}}Dictionary<string, object> temp = new Dictionary<string, object>();for (int i = 0; i < namelist.Count; i++){temp.Add(namelist[i], valuelist[i]);}temp.Add("updateTime", DateTime.Now);return temp;}//用到更新操作里,参考如下:var dic = new Dictionary<string, string>();dic.Add("name", "第十三条");dic.Add("areaId", "1");db.Update<School, int>(dic, 13);或:Object obj = AlterTable.AlterDate(dt);……var result = db.Update<t_customer,int>(obj,cusid);//方法重载,只有第二个参数里包含的字段才能进行修改public static Object AlterDate(Object tabledataobj,List<string> modifiableField){List<string> namelist = new List<string>();List<Object> valuelist = new List<object>();Type t = tabledataobj.GetType();foreach (PropertyInfo pi in t.GetProperties()){if (pi.Name == "id"){ }else{if (modifiableField.Contains(pi.Name)){Object value = pi.GetValue(tabledataobj);if (value != null){namelist.Add(pi.Name);valuelist.Add(value);}}}}Dictionary<string, object> temp = new Dictionary<string, object>();for (int i = 0; i < namelist.Count; i++){temp.Add(namelist[i], valuelist[i]);}temp.Add("updateTime", DateTime.Now);return temp;}//这样写的话,后面表示的是动态的的生成对象,并且动态的给对象添加属性public static Object AlterDate(Object tabledataobj){List<string> namelist = new List<string>();List<Object> valuelist = new List<object>();Type t = tabledataobj.GetType();foreach (PropertyInfo pi in t.GetProperties()){if (pi.Name == "id"){ }else{Object value = pi.GetValue(tabledataobj);if (value != null){namelist.Add(pi.Name);valuelist.Add(value);}}}Dictionary<string, object> temp = new Dictionary<string, object>();for (int i = 0; i < namelist.Count; i++){temp.Add(namelist[i], valuelist[i]);}temp.Add("updateTime", DateTime.Now);dynamic result = new System.Dynamic.ExpandoObject();foreach (KeyValuePair<string, object> item in temp){((IDictionary<string, object>)result).Add(item.Key, item.Value);}return result;} // 另一种方式ExpandoObject 类,“需引用System.Dynamic命名空间”
dynamic person = new ExpandoObject();
person.Name = "cary";
person.Age = 25;
person.ShowDescription = new Func<string>(() => person.Name + person.Age);
Console.WriteLine(person.Name+person.Age+person.ShowDescription());
Console.ReadLine();
转载于:https://www.cnblogs.com/zhangchaoran/p/7521185.html
修改数据表部分字段方法封装-及-动态生成对象并动态添加属性相关推荐
- MySQL修改数据表中的字段名
MySQL修改数据表中的字段名 在一张数据表中只能设置一个唯一名称的字段名.在同一张数据表中,不能出现两个名称完全相同的字段名. 因此,数据库系统可以通过字段名来区分数据表中的不同字段. 在MySQL ...
- mysql授权 改表_mysql开启远程登陆(修改数据表和授权两种方法)
一.确认防火墙没有阻止3306端口(一般服务器默认会屏蔽掉) windows防火墙例外设置方法 控制面板(右上角选择查看方式为大图标)---防火墙---高级设置---高级设置---出站规则---最右边 ...
- 【Oracle】修改数据表名、字段名
修改字段类型: alter table 表名 modify(字段 varchar2(255)); 修改字段名: alter table 表名 rename column 原字段名 to 新字段名; 修 ...
- mysql后台修改表_mysql之约束以及修改数据表
数据约束的分类: ---------------------------------------------------- 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...
- MySQL学习笔记-约束以及修改数据表
MySQL学习笔记-约束以及修改数据表 约束: 按功能划为: NOT NULL , PRIMARY KEY , UNIQUE KEY , DEFAULT , FOREIGN KEY 按数据列的数目划为 ...
- 了解什么是数据库、数据表、字段、等概念
标题:了解什么是数据库.数据表.字段.等概念 (1)数据库:数据库是"按照数据结构来组织.存储和管理数据的仓库".是一个长期存储在计算机内的.有组织的.有共享的.统一管理的数据集合 ...
- mysql所有的编码_MySQL 批量修改数据表编码及字符集
当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改.以下备注批量修改方案( 以修改为 utf8mb4_bin 为例,注意将 db_name 换为真实的数据库名 ). 1. ...
- Oracle 创建数据表以及对数据表、字段、主外键、约束的操作
选择主键的原则: 最少性 尽量选择使用单个键作为主键 稳定性 尽量选择数值更新少的列作为主键 1.创建数据表(CREATE TABLE) --创建数据表Student create table Stu ...
- MySQL学习笔记 约束以及修改数据表
*** 约束保证数据的完整性和一致性 *** 约束分为表级约束和列级约束 *** 约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) D ...
最新文章
- Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑
- VTK:Qt之ShowEvent
- ubuntu19.10锁屏时间调节
- 如何使用 Node.js 访问 SAP HANA Cloud 数据库里的数据
- python天天向上续2_2019/2/12 Python今日收获
- ik分词器 mysql php_php环境下使用elasticSearch+ik分词器进行全文搜索
- 定制化你的ReactNative底部导航栏
- ICLR2020 | 如何判断两个神经网络学到的知识是否一致
- mongodb php代码实例,php操作mongoDB实例分析
- Team Foundation Server 2010 安装、部署与配置(六):创建 Team Project .
- WEBSOCKET协议判断 握手及反馈
- JVM系列(之class文件)
- win10下Redis安装、启动教程
- python workflow_用 Python 写 Alfred3 workflow 插件,一个最小示例
- ArcGIS10.8安装(附最新<2022年10月29日>下载地址)
- 计算机网络——网络安全
- 谷歌浏览器屏蔽百度热点搜索
- 【技术分享】ApolloEDU6.0+LGSVL联合仿真环境搭建
- LeetCode 37. 解数独 Sudoku Solver
- 猛兽来袭——Integral Protocol